社区讨论

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 条回复,欢迎继续交流。

正在加载回复...