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

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

 #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("\nNhap tung do:");
        scanf("%d",&dt[i].tungdo);
        printf("\nNhap 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);
}

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???) :slight_smile:

1 Like

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

bác gặp 1 lỗi không hiểu đề :slight_smile: hoặc đề sai :smiley:
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

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?