大神们快来帮帮我
P5728 【深基5.例5】旗鼓相当的对手:现有 N(N≤1000)N(N\le 1000)N(N≤1000) 名同学参加了期末考试,并且获得了每名同学的信息:语文、数学、英语成绩(均为不超过 150 的自然数)。如果某对学生 <i,j> 的每一科成绩的分差都不大于 5,且总分分差不大于 10,那么这对学生就是“旗鼓相当的对手”。现在想知道这些同学中,有几对“旗鼓相当的对手”?同样一个人可能会和其他好几名同学结对。我想了好久都没搞懂我哪里错了呀,大神们帮忙看看吧{:5_96:}
#include<stdio.h>
#include<math.h>
int main()
{int n,g;
scanf("%d",&n);
int a;
for(int i=0;i<n;i++)
{
scanf("%d",&a);
scanf("%d",&a);
scanf("&d",&a);
}
for(int i=0;i<n;i++)
{for(int d=i+1;d<n;d++)
{
int x= fabs(a-a);
int y= fabs(a-a);
int z= fabs(a-a);
int o= fabs( (a+a+a)-(a+a+a) );
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); // 正确的是:scanf("%d",&a);
int x = fabs(a - a);
int y = fabs(a - a);
int z = fabs(a - a);
int o = fabs((a + a + a) - (a + a + a));
fabs() 的类型是 double 型,它是 无法将参数 1 从“int ”转换为“double” 的,对他们进行修改,程序即可运行
另外,你得先搞清楚,你的编译器是否支持变长数组(我的 VS2015 就不支持),若支持则没事,若不支持,int a; 这一语句也得改
#include<stdio.h>
#include<math.h>
int main()
{
int n,g;
scanf("%d",&n);
//这样的语法我这不支持,不知道你的编译器支持不?
//不支持的话可以改成inta;
int a;
for(int i=0;i<n;i++)
{
scanf("%d",&a);
scanf("%d",&a);
scanf("&d",&a);
}
for(i=0;i<n;i++)
{
for(int d=i+1;d<n;d++)
{
int x= abs(a-a);
int y= abs(a-a);
int z= abs(a-a);
int o= abs((a+a+a)-(a+a+a));
if(x<=5&&y<=5&&z<=5&&o<=10)
{
g+=1;
}
}
}
printf("%d",g);
return 0;
} 其实是我粗心搞错了
scanf("%d",&a);
scanf("%d",&a);
scanf("&d",&a);
第三个输入函数我把%打成了&,所以错了哈哈哈哈。
可能我比较菜,你说的我也听不太懂,但是谢谢你啦{:5_106:}{:5_106:}
页:
[1]