首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求c语言解决,该如何解决

2012-06-05 
求c语言解决有n个人围成一圈,顺序排号从第一个人开始报数(从1-5报数),凡报道5的人退出圈子,问最后留下的是

求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]

[解决办法]

C/C++ code
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;}
[解决办法]
探讨
C的下标从0开始(非从1开始)
a[10] 下标范围:a[0]~a[9]

[解决办法]
google一下约瑟夫问题
[解决办法]
数组下标有问题 初始化为a[10] 那就是a[0]~a[9] 你是从1开始到10的

热点排行