为啥这题的数组初始化放在字符定义后面就会出错,大佬们看看
查看原帖
为啥这题的数组初始化放在字符定义后面就会出错,大佬们看看
516905
cwqluo楼主2021/8/7 18:09
#include<stdio.h>
int main()
{int a[6],b[7000],s[1000]={0},n,i,j,ci[7]={0},sum=0,v=0,q=1;
scanf("%d",&n);//买的n张彩票
scanf("%d %d %d %d %d %d %d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6]);//输入中奖号码
v=7*n;	
for(j=7;j<=v;j=j+7)
	{
	
		scanf("%d %d %d %d %d %d %d",&b[j],&b[j+1],&b[j+2],&b[j+3],&b[j+4],&b[j+5],&b[j+6]);//输入买的彩票号码
		for(i=0;i<=6;i++)
		{
			if(a[i]==b[j])s[q]++;
			else if(a[i]==b[j+1])s[q]++;
			else if(a[i]==b[j+2])s[q]++;
			else if(a[i]==b[j+3])s[q]++;
			else if(a[i]==b[j+4])s[q]++;
			else if(a[i]==b[j+5])s[q]++;
			else if(a[i]==b[j+6])s[q]++;
		}
		q++;

		
	}
for(q=1;q<=n;q++)//判断几等奖
{
	switch(s[q])
		{	
			case 0:
				break;
			case 1:
				ci[7]++;break;
			case 2:
				ci[6]++;break;
			case 3:
				ci[5]++;break;
			case 4:
				ci[4]++;break;
			case 5:
				ci[3]++;break;
			case 6:
				ci[2]++;break;
			case 7:
				ci[1]++;break;
		
		}


}
for(i=1;i<=7;i++)
{	
		if(i==7)
			printf("%d",ci[i]);
		else
			printf("%d ",ci[i]);

}

return 0;
}

这个是错的,把ci拉到前面去就能正确过,是为什么

2021/8/7 18:09
加载中...