永发信息网

用C语言代码如何写100个人报数,每报到单数的人下场,依此类推,最后一个人是谁?

答案:2  悬赏:70  手机版
解决时间 2021-04-05 21:34
用C语言代码如何写100个人报数,每报到单数的人下场,依此类推,最后一个人是谁?
最佳答案
没时间测了,思路是这样
#include "stdio.h"

int main()
{
int i,index = 0,num,number[100];//number[100]存那100个人 为0 表示未被淘汰 为一被淘汰
while (1)
{
for (i = 0;i<100;i++)////淘汰人
{
printf("please speak out your num");
if (number[i] == 0)
{
scanf("%d",&num);
if (num%2 == 1)
{
printf("you are out");
number[i] = 1;
}
}

}
for (i = 0;i< = 100;i++)//选出最后一个人
{
if (number[i] == 0)
{
index++;
}
if(index == 1)
printf("you have win %d",i);
break;
}

}
return 0;
}
全部回答
不多说了,直接写测试结果:
第1 轮后还剩下的元素:
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54
56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100
第 2 轮后还剩下的元素:
4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100
第3 轮后还剩下的元素:
8 16 24 32 40 48 56 64 72 80 88 96
第 4轮后还剩下的元素:
16 32 48 64 80 96
第 5 轮后还剩下的元素:
32 64 96
第 6 轮后还剩下的元素:
64
正确的源代码:
#include "stdio.h"
#include "conio.h"
void printArray(int a[],int n)
{
int i;
for(i=0;i {
if(a[i]!=0)
printf("%2d ",a[i]);
}
printf("\n");
}
main()
{
int student[100];
int n=0,count=0,number=0,i,j=0;
for(i=1;i<=100;i++)
{
student[i-1]=i;
}
while(number<99)
{
count=0;
j++;
printf("\n\n第 %d 轮后还剩下的元素:\n",j);
for(i=0;i<100;i++)
{
if(student[i]!=0)
{
count++;
if(count%2!=0)
{
student[i]=0;
number++;
}
}
}
printArray(student,100);
}
getch();
}
楼主好运!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
.jsyy 用什么打开
夜里美丽星空的诗句
做了5年的美发,想改行,有什么权威的机构来
躺在母亲身边        王晓明①母亲病
喝含锌离子的水好吗
身高160腰围80胸围90臀围100大腿围60
什么是基宅地
年化收益率怎么计算,比如百分之4.56,投资一
邮政储蓄与银行储蓄相比A.可以为广大储户存款
你好,我也想要一份HTC T328w 联通定制版 ,
oppo云服务哪里下载
跳新疆舞的那个最常见的背景音乐叫什么
离婚了3天想复婚是什么心里
00后小时候玩的一种椭圆柱的玩具,里面还有一
单选题洋葱表皮属于A.保护组织B.营养组织C.机
推荐资讯
1.然微以自文于君亲,君亲其谓予何。(《指南
求H3C WA2200_FAT.BIN,那位有发一个!
北京附近两日自助游景点
茂名旧一中市场是临时市场,谁知道正确的建设
电信LAN入户宽带 电信人员检测 从楼下到家线
运动和干活有什么区别?
室内温度低于12度空调制冷不能启动吗
手游。坦克风云。怎么样能快点让普通矿洞变富
2003年凭证式(三期)国债自9月1日在京城发行
看守所什么时候可以去给他们充钱
羊毛被掉毛怎么办?
百货商店日语怎么说,商场用日语怎么说
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?