30/09/2018, 16:14

Bài Tập Khó Cần Giúp

chưa biết sai lỗi nào

 #include <stdio.h>
#include <conio.h>
#include <cmath>
struct duongtron
{
    int hoanhdo,tungdo,bankinh;
};
int tinhkhoangcach(int hoanhdo1,int tungdo1,int hoangdo2,int tungdo2)
{
    int kc;
    kc=sqrt(pow(hoangdo2-hoanhdo1,2)+pow(tungdo2-tungdo1,2));
    return kc;

}
int main()
{
    struct duongtron dt[1000];
    int n,dem=0,khoangcachtam,khoangcachbankinh;
    scanf("%d",&n);
    for (int i=0;i<n;i++)
    {
        printf("Nhap hoanh do:");
        scanf("%d",&dt[i].hoanhdo);
        printf("
Nhap tung do:");
        scanf("%d",&dt[i].tungdo);
        printf("
Nhap ban kinh:");
        scanf("%d",&dt[i].bankinh);
    }
    for (int i=0;i<n-1;i++)
        for (int j=i+1;j<n;j++)
    {
        khoangcachbankinh=dt[j].bankinh-dt[i].bankinh;
        if (khoangcachbankinh<0)
            khoangcachbankinh=-khoangcachbankinh;
        khoangcachtam=tinhkhoangcach(dt[i].hoanhdo,dt[i].tungdo,dt[j].hoanhdo,dt[j].tungdo);
        if (khoangcachtam<=(dt[i].bankinh+dt[j].bankinh)||khoangcachtam>=khoangcachbankinh)
        dem++;
    }
    printf("%d",dem);
}
Nguyễn Quang Duy viết 18:17 ngày 30/09/2018

Theo mình nghĩ thì công thức tính khoangcachbankinh bạn nên lấy trị tuyệt đối. Nhưng mình không hiểu bạn so sánh khoangcachtam với khoangcachbankinh làm gì? (trường hợp đường tròn này nằm trong đường tròn kia???)

Anh Weasley viết 18:23 ngày 30/09/2018

khoảng cách 2 tâm <= tổng 2 bán kính là chạm . n < 1000 . k hiểu thuật toán của bác là gì . với lại tập code OOP đi bác

Ai Android viết 18:15 ngày 30/09/2018

bác gặp 1 lỗi không hiểu đề hoặc đề sai
mình cũng chưa xem test thử có rõ ràng điểm này không
Hình tròn là đường tròn + phần mặt phẳng trong đường tròn . do đó va chạm khi
khoangcachtam<=tổng bán kính

Bài liên quan
0