发子弹(C语言程序设计)

这篇博客讨论了一个实弹射击训练中的子弹分配问题,初始时每个战士的子弹数量不同。每次调整时,战士会根据手中子弹数是否为奇数向班长申请子弹,然后将子弹平分给下一位战士。文章旨在通过编程解决这个问题,展示如何在C语言中实现这一逻辑,并输出每个战士在每轮调整后的子弹数量,直至所有战士子弹数相等。
摘要由CSDN通过智能技术生成

题目描述

在某次实弹射击训练中,班长将十个战士围成一圈发子弹。首先,班长给第一个战士10颗,第二个战士2颗,第三个战士8颗,第四个战士22颗,第五个战士16颗,第六个战士4颗,第七个战士10颗,第八个战士6颗,第九个战士14颗,第十个战士20颗。然后按如下方法将每个战士手中的子弹进行调整:所有的战士检查自己手中的子弹数,如果子弹数为奇数,则向班长再要一颗。然后每个战士再同时将自己手中的子弹分一半给下一个战士(第10 个战士将手中的子弹分一半给第1个战士)。问需要调整多少次后,每个战士手中的子弹数都相等?每人各有多少颗子弹?
输入与输出要求:输出为各战士手中原始的子弹数,每轮交换过后各战士手中的子弹数,直到各战士手中的子弹数相等为止。原始子弹数即为第0轮交换。注意程序运行效果中的“xx”应为实际交换后的子弹数。

 

程序运行效果:
Sample 1:
0: 10 2 8 22 16 4 10 6 14 20
1: xx xx xx xx xx xx xx xx xx xx
2: xx xx xx xx xx xx xx xx xx xx
……

程序代码:

#include<stdio.h>
int main(void)
{
    int num[10] = { 10,2,8,22,16,4,10,6,14,20 };//定义数组
    int add[10] = { 0 };
    int i;
    int k = 1;
    printf("0: 10 2 8 22 16 4 10 6 14 20\n");
    while (num[0] !
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值