没有思路,能否用简单的方法解决?
#include
#include
int main()
{
int n,i,j,flag,count=0;
scanf("%d",&n);
int a[n][3];
for(i=0;ifor(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
for(j=0;j<3;j++)
{
for(i=j;iif(abs(a[i][j]-a[i][j+1])<=5)
{
flag=1;
}
else flag=0;
}
}
if(flag==1)
{
for(i=0;iif(abs(a[i][0]+a[i][1]+a[i][2]-a[i+1][0]-a[i+1][1]-a[i+1][2])<=10)
{
count++;
}
}
}
printf("%d",count);
return 0;
}
修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
#define N 1001
int main()
{
int n, i, j, flag, count = 0;
int a[N][3]; //修改
scanf("%d", &n);
for (i = 0; i < n; i++)
{
for (j = 0; j < 3; j++)
{
scanf("%d", &a[i][j]);
}
}
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j < n; j++)
{
if (abs(a[i][0] - a[j][0]) <= 5 && abs(a[i][1] - a[j][1]) <= 5 && abs(a[i][2] - a[j][2]) <= 5 &&
abs(a[i][0] + a[i][1] + a[i][2] - a[j][0] - a[j][1] - a[j][2]) <= 10)
count++;
}
}
printf("%d", count);
return 0;
}
2重循环不对
应该用三重循环
两重用来循环行,一重代表被对比的同学,一重代表用来对比的同学
还有一重是循环成绩
遇到问题不要着急写代码,要先想好到底是谁跟谁比
a[i][j]-a[i][j+1]
你这是一个人的一门成绩跟他自己的下一门成绩在比,这是要比个啥