C语言程序找错 我看了半天不知道哪里错了 希望高手给指点

[复制链接]
查看11 | 回复2 | 2010-10-31 12:44:01 | 显示全部楼层 |阅读模式
有m个人围城一圈。从第一个人开始报数(从1到n报数),凡报到n的人退出圈子
#include "stdio.h"
void main()
{

int a[80],i,k=0,m,n,p=0,sum=0;

printf("请输入总人数:");

scanf("%d",&m);

printf("请输入要出去的人的数字:");

scanf("%d",&n);

for(i=0;i<n;i++)

a=i+1;

i=0;

while(sum<m-1)

{ if(a!=0) k++;

if(k==n)

{a=0;

k=0;

sum++;

}

i++;

if(i==m)

i=0;

}

while(a[p]==0)

p++;

printf("最后剩下的绝对是他!!:%d",a[p]);
}
这个程序是错的 请问哪里错了?

回复

使用道具 举报

千问 | 2010-10-31 12:44:01 | 显示全部楼层
while(sum<m-1)
{ if(a!=0) k++;
if(k==n)
{a=0;
k=0;
sum++;
}
i++;
if(i==m)
i=0;
}
while(a[p]==0)
p++;
printf("最后剩下的绝对是他!!:%d",a[p]);}这些地方都不对!假如M=8.N=5!sum=0,小于M-1=7a[0]~a[4]!=0 k值直到5if(k==n) //5==5 执行a[4]=0;k=0;sum++ //sum=1
回复

使用道具 举报

千问 | 2010-10-31 12:44:01 | 显示全部楼层
你可以用软件进行单步跟踪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行