先附上代码
#include<stdio.h>
int a[10010][8];
int b[8];
int main()
{
int n,i,j,k,num,t;
int c[8]={0,0,0,0,0,0,0,0};
scanf("%d",&n);
scanf("%d%d%d%d%d%d%d",&b[1],&b[2],&b[3],&b[4],&b[5],&b[6],&b[7]);
for(i=1;i<=n;i++)
{
for(j=1;j<=7;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<8;j++)
{
for(k=1;k<8;k++)
{
if(a[i][j]==b[k])
{
t++;
}
}
}
if(t==7)
{
c[1]++;
}
else
c[t+1]++;
}
for(i=1;i<=7;i++)
{
printf("%d ",c[i]);
}
return 0;
}
我描述一下我的问题,5个全是RE,但是我在网上搜到的常见RE错误有如下
1、数组开的太小
2、发生除零错误
3、大数组定义在函数内
4、指针用错
5、程序抛出未接收的异常
关于1、首先数组开的不小,刚刚好是够的,其次即使我将数组长度扩大了,还是5个RE。
关于2、这里只用到了比较,并没有用到除法,应该不是这个错误。
关于3、首先每个数组都不大,其次,我将相对较大的数组放在主函数外面,依然是RE,应该不是这个错误。
关于4、代码中并没有出现越界的情形,应该不是这个错误。
关于5、这可能是玄学问题了。。。。
还望各位大佬多多指教,指出一条明路。