求c语言解决
有n个人围成一圈,顺序排号从第一个人开始报数(从1-5报数),凡报道5的人退出圈子,问最后留下的是原来第几号的那位
#include<stdio.h>
main()
{
int a[10],i=0,count1=0,count2=0;
for(i=1;i<=10;i++)
scanf("%d",&a[i]);
for(i=1;i<=10;i++)
if(a[i]!=-1)
{
count1++;
if(count1==5)
{
a[i]=-1;
count1=0;
}
count2++;
i=(i+1)%10;
if(count2==9) break;
}
for(i=1;i<=10;i++)
if(a[i]!=-1)
printf("%d",i);
}哪里出错了丫、、调了好多次结果还是错的
[解决办法]
循环输入的地方,数组下标是从0开始的
for(i=0;i <10;i++)
scanf( "%d ",&a[i]);
[解决办法]
看你下面好像都是
数组越界了
[解决办法]
C的下标从0开始(非从1开始)
a[10] 下标范围:a[0]~a[9]
[解决办法]
int _tmain(int argc, _TCHAR* argv[]){ int a[10]={0},i=0,count1=0,count2=0; while(count2<9) { if(a[i]==0) { count1++; } if(count1==5) { count1=0; a[i]=-1; ++count2; } ++i; i%=10; } for (i=0;i<10;++i) if(a[i]==0){ printf("%d\n",i); } return 0;}
[解决办法]