A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问最后留下的是原来的几号

#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;
}

2 个回复

倒序浏览
这个题我基础测试的时候做过类似的
回复 使用道具 举报
这题方法不唯一,我是用结构体做的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马