黑马程序员技术交流社区
标题:
10个人围一圈循环报数(1,2,3),报到3的人退出
[打印本页]
作者:
aludiba
时间:
2015-7-6 00:03
标题:
10个人围一圈循环报数(1,2,3),报到3的人退出
问最后留下的是原来的几号
#include <stdio.h>
int main()
{
int array[10],i,j=0,m=10,sum1=0,sum2=0,number;
printf("input number:\n");
for (i=0;i<10;i++)
{
scanf("%d",&array[i]);//往数组中输入不同的数表示不同的人
}
for (i=0;i<10;i++)
{
sum1+=i;//将原来的所有人的号码数相加求和
}
for (i=0;i<10;i++)
{
//报到3的人退出,数组中的该位元素设为0
if(array[i]!=0) j++;
if(j==3)
{
j=0;
array[i]=0;
sum2+=i;//将退出的人号数相加
m--;
}
//最后一个人报完,从头再来
if(i==9) i=-1;
if(m==1) break;//如果还剩一个人for循环结束
}
number=sum1-sum2;//两个和相减,就是最后一个人的号码
printf("最后留下来的是原来的第%d号\n",number);
return 0;
}
作者:
984326157
时间:
2015-7-6 01:37
这个题我基础测试的时候做过类似的
作者:
unnamed
时间:
2015-7-6 08:10
这题方法不唯一,我是用结构体做的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2