系统粉 > 电脑问答 > 其他问答

已解决烦请帮忙指点一下

提问者:楼上楼下没高潮  |  浏览次  |  提问时间:2017-01-14  |  回答数量:9

烦请帮忙指点一下在某次实弹射击训练中,班长将十个战士围成一圈发子弹,首先,班长给第一个战士10颗,第二个战士2颗,第三个战士8颗,第四个战士22颗,第五个战士16颗,第六个战士4颗,第七个战士10颗,第八个战士6颗,第九个战士14颗,第十个战士20颗,然后按如下方法将每个战士手中的子弹进行调整,所有的战士检查自己手中的子弹数,如果子弹数为奇数,则向班长再要一颗,然后每个战士再同时将自己手中的子弹分一半给下一个战士(第10个战士将手中的子弹分一半给第一个战士)。问需要多少次调整后,每个战士手中的子弹数都相等 ?每个人各有多少颗子弹?牋牋 要求:输出每轮调整后战士手中的子弹数。牋牋 要求结果的输出格式为牋牋0牋 10牋 2牋 8牋 22牋 16牋 4牋 10牋 6牋 14牋 20 各战士手中原始的子弹数牋牋1牋 xx牋xx牋xx牋xx牋牋xx牋 xx牋xx牋xx牋 xx牋 xx 第1轮各战士手中的子弹数牋牋2牋 xx牋xx牋xx牋xx牋牋xx牋 xx牋xx牋xx牋 xx牋 xx 第2轮各战士手中的子弹数牋牋牋牋牋……牋牋 n牋 xx牋xx牋xx牋xx牋牋xx牋 xx牋xx牋xx牋 xx牋 xx 最后一轮各

已有9条答案
栩小鱼

栩小鱼

回答数:7  |  被采纳数:62

谁会做,指点一下
QQ:562347598
2017-01-14 05:37:46
赞 0
叫我凛凛蝶大人

叫我凛凛蝶大人

回答数:64  |  被采纳数:77

感觉应该是这里的while循环条件不对,但是不知道原因
2017-01-14 04:29:17
赞 6
想的愿

想的愿

回答数:79  |  被采纳数:49

while哪个地方我想应该换成FOR语句而且还应该是个嵌套才对!
比对的时候应该是让第一个战士和其他9位比对,第2位和其他8位比对,以此类推。。。
2017-01-14 11:02:04
赞 7
海天一色屏山远

海天一色屏山远

回答数:146  |  被采纳数:42

楼主这样没错啊
2017-01-14 08:36:59
赞 14
镜柱桑

镜柱桑

回答数:32  |  被采纳数:64

#include<stdio.h>#include<conio.h>void main(){int a[10] = {10, 2 ,8, 22, 16 ,4, 10, 6 ,14, 20};int b[10] ;int i = 0 , j = 0,n=0 ;while (a[0] != a[1]||a[1] != a[2]||a[2] != a[3]||a[3] != a[4]||a[4] != a[5]||a[5] != a[6]||a[6] != a[7]||a[7] != a[8]||a[8] != a[9]||a[9] != a[0] ){printf("%4d" , j++);for (i=0; i < 10; i++){printf("%4d" , a[i]);}printf("\n");for( i=0 ; i < 10 ; i++) { if(a[i] % 2 == 1){a[i] = a[i] + 1;}}for( i=0 ; i < 10 ; i++){a[i] = a[i] / 2;b[i] = a[i];}for( i=0 ; i < 10 ; i++){if(i != 0){a[i] = a[i] + b[i - 1];}else a[i] = a[i] + b[9];}}getch();}复制代码

(1)

2017-01-14 09:01:40
赞 3
南宫世轩

南宫世轩

回答数:87  |  被采纳数:62

就如楼上的图片,结果应该是所有的数全是一样的,但是就是有两个数是17,所以这里有问题,但是目前我还没有找到原因。
希望能得到大家的帮忙。
谢谢。
2017-01-14 12:03:43
赞 8
杅九

杅九

回答数:2  |  被采纳数:17

就是这样啊,这样就完了,那两个数是17奇数,再各要一个就成18了,因为都是18了,所以都相等了就不进循环了,如果你想让它在屏幕上显示的话,可以在循环完后加上这样一句 printf("&4d",j);for (i=0;i<10;i++){printff("%d",a[i]);}复制代码
2017-01-14 19:05:26
赞 0
玉米笋

玉米笋

回答数:217  |  被采纳数:41

#include<stdio.h>#include<conio.h>void main(){int a[10] = {10, 2 ,8, 22, 16 ,4, 10, 6 ,14, 20};int b[10] ;int i = 0 , j = 0,n=0 ;while (a[0] != a[1]||a[1] != a[2]||a[2] != a[3]||a[3] != a[4]||a[4] != a[5]||a[5] != a[6]||a[6] != a[7]||a[7] != a[8]||a[8] != a[9]||a[9] != a[0] ){printf("%4d" , j++);for (i=0; i < 10; i++){printf("%4d" , a[i]);}printf("\n");for( i=0 ; i < 10 ; i++) { if(a[i] % 2 == 1){a[i] = a[i] + 1;}}for( i=0 ; i < 10 ; i++){a[i] = a[i] / 2;b[i] = a[i];}for( i=0 ; i < 10 ; i++){if(i != 0){a[i] = a[i] + b[i - 1];}else a[i] = a[i] + b[9];}} printf("%4d",j);for (i=0; i<10; i++){ printf("%4d",a[i]);}getch();}复制代码(2)
2017-01-14 16:26:51
赞 21
5262131

5262131

回答数:45  |  被采纳数:50

哦,晓得了,一语惊醒梦中人,谢谢了。
2017-01-15 00:16:34
赞 4
相关问答
最新其他问答
解决方法