社区讨论
c语言,50分,感觉距离和半径的比较没写好,大佬求助
P1652圆参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lo81rozh
- 此快照首次捕获于
- 2023/10/27 11:22 2 年前
- 此快照最后确认于
- 2023/10/27 11:22 2 年前
本来例样过了信心慢慢去提交,yes不愧是我,然后对着50分发呆,然后斗志昂扬,我一定要解决,然后改了改,30分,又改回来了,发呆。。。。,然后来到了求助贴,大佬们康康,真麻了
www比较的代码 就是那个叫做pd (判断)的函数部分
C#include <stdio.h>
#include <math.h>
//传进来五个数字,两个坐标和一个半径
int pd(int a,int b,int a1,int b1,int r)
{
double end=0.0;
end=sqrt((a-a1)*(a-a1)+(b-b1)+(b-b1));
if(end<r)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int A[160]={};
int n=0,cir=0,x1=0,y1=0,x2=0,y2=0,count=0,tmp=0;
scanf("%d",&n);
for(cir=0;cir<n;cir++)
{
scanf("%d",&A[0+3*cir]);
}
for(cir=0;cir<n;cir++)
{
scanf("%d",&A[1+3*cir]);
}
for(cir=0;cir<n;cir++)
{
scanf("%d",&A[2+3*cir]);
}
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
//以上为数据输入部分,偷懒只搞了一个数组,以每个数组的 0 1 2加3的倍数 为地址来一起存放
for(cir=0;cir<n;cir++)
{
tmp=tmp+pd(x1,y1,A[cir*3],A[1+cir*3],A[2+cir*3]);
tmp=tmp+pd(x2,y2,A[cir*3],A[1+cir*3],A[2+cir*3]);
if(tmp==1)
//这里就是 两个点全在圆里不行,全在圆歪也不行,就是0 2 都不行只有1可以
{
count++;
}
tmp=0;//清空
}
printf("%d",count);
return 0;
}
最后,先感谢每个看到这里的大佬www爱你们
回复
共 3 条回复,欢迎继续交流。
正在加载回复...