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);
}
Bài liên quan
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???)
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 đề 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