洛谷P5728,为什么在dev上面调试也是对的,为什么在洛谷就错了,求解答!
数组定义:int a[101] ,b[101],c[]101],sum[101]; //a[100] ......
for(i=1;i<=N-1;i++) //for(i=1;i<=N;i++)
for(j=i+1;j<=N;j++) // i j 这里对数组的操作越界了。
修改如下,改动处见注释说明,供参考:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int a[1001],b[1001],c[1001],sum[1001];
int main(int argc, char *argv[])
{
int N,i,j;
int num=0;
scanf("%d",&N);
for(i = 0;i < N; i++){ //for(i=1;i<=N;i++) 修改
scanf("%d %d %d",&a[i],&b[i],&c[i]);
sum[i]=a[i]+b[i]+c[i];
}
for(i = 0;i < N - 1; i++){ //for(i=1;i<=N;i++) 修改
for(j = i+1;j < N; j++){ //for(j=i+1;j<=N;j++) 修改
if(abs(a[i]-a[j]) <= 5 && //abs(a[i]-a[j]<=5) abs()括号括错了
abs(b[i]-b[j]) <= 5 && //abs(b[i]-b[j]<=5)
abs(c[i]-c[j]) <= 5 && //abs(c[i]-c[j]<=5)
abs(sum[i]-sum[j]) <= 10) //abs(sum[i]-sum[j]<=10)
num++;
}
}
printf("%d",num);
return 0;
}