C语言题目,最好要有代码,谢谢各位大虾!
答案:2 悬赏:60 手机版
解决时间 2021-04-23 22:05
- 提问者网友:两耳就是菩提
- 2021-04-23 08:27
10个人围成一圈,从第一个人开始依次从1到8循环报数,每当报数为8时,此人出圈,直到圈中只剩下一个人为止,请按退出的次序输出出圈人原来的编号。
最佳答案
- 五星知识达人网友:封刀令
- 2021-04-23 09:43
int a[8]={1,23,34,54,65,75,86,3};//十个人
int b[8];//退出来的编号
int j,i;
for(i=8;i<0;i--){
b[8-i]=a[i];
printf("b[%d]=%d",8-i,a[8-i]);
}
全部回答
- 1楼网友:雪起风沙痕
- 2021-04-23 10:52
这就是一个约瑟夫环程序.
帮你写了个.你参考下:
#include< stdio.h >
main() { int a[ 10 ]; int i, s = 10, num = 0; //s用于记录淘汰玩家的个数. num用于累加报数值. for( i = 0; i < 10; i++ ) //初始化玩家状态. a[ i ] = 1;
i = 0; while( i = i % 10, 1 != s ) { if( a[ i++ ] && ++num % 8 == 0 ) //报到8退出. { printf( "NO.%d out\n", i ); a[ i-1 ]=0; s--; } } for( i = 0; !a[ i ]; i++ ) ; //寻找数组中胜利的玩家. printf( "\nNO.%d is winner\n", i+1 ); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯