|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
P5728 【深基5.例5】旗鼓相当的对手:现有 N(N≤1000)N(N\le 1000)N(N≤1000) 名同学参加了期末考试,并且获得了每名同学的信息:语文、数学、英语成绩(均为不超过 150 的自然数)。如果某对学生 <i,j> 的每一科成绩的分差都不大于 5,且总分分差不大于 10,那么这对学生就是“旗鼓相当的对手”。现在想知道这些同学中,有几对“旗鼓相当的对手”?同样一个人可能会和其他好几名同学结对。
我想了好久都没搞懂我哪里错了呀,大神们帮忙看看吧
#include<stdio.h>
#include<math.h>
int main()
{int n,g;
scanf("%d",&n);
int a[n][3];
for(int i=0;i<n;i++)
{
scanf("%d",&a[i][0]);
scanf("%d",&a[i][1]);
scanf("&d",&a[i][2]);
}
for(int i=0;i<n;i++)
{for(int d=i+1;d<n;d++)
{
int x= fabs(a[i][0]-a[d][0]);
int y= fabs(a[i][1]-a[d][1]);
int z= fabs(a[i][2]-a[d][2]);
int o= fabs( (a[i][0]+a[i][1]+a[i][2])-(a[d][0]+a[d][1]+a[d][2]) );
if(x<=5&&y<=5&&z<=5&&o<=10)
{
g+=1;
}
}
}
printf("%d",g);
return 0;
}
本帖最后由 风过无痕1989 于 2020-11-27 21:45 编辑
下列写法错误:
scanf("&d",&a[2]); // 正确的是:scanf("%d",&a[2]);
int x = fabs(a[0] - a[d][0]);
int y = fabs(a[1] - a[d][1]);
int z = fabs(a[2] - a[d][2]);
int o = fabs((a[0] + a[1] + a[2]) - (a[d][0] + a[d][1] + a[d][2]));
fabs() 的类型是 double 型,它是 无法将参数 1 从“int [n][3]”转换为“double” 的,对他们进行修改,程序即可运行
另外,你得先搞清楚,你的编译器是否支持变长数组(我的 VS2015 就不支持),若支持则没事,若不支持,int a[n][3]; 这一语句也得改
|
|