标题:出圈问题,程序错误
取消只看楼主
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
结帖率:83.33%
 问题点数:0 回复次数:4 
出圈问题,程序错误
程序错在哪了?
#include <iostream.h>
main()
{
    int a[101];
    int i,j,t=0,n=0;
    for(i=1;i<=100;i++)//为100个人编号
       a[i]=i;
       i=1;
    while(n<100)
    {
        if(a[i]!=0)//t用于循环记数
            t++;
        if(t==3) //t为3时退出者标为0,记数重新开始,退出人数加一
        {a[i]=0; t=0; n++;}
      i++;
      if(i==100)i=1;//当循环到最后时又重新开始记数
    }
        i=1;
    while(a[i]==0) i++;//找到数组中唯一没被标为0的元素
        cout<<a[i];

}

[[it] 本帖最后由 yqiong 于 2008-3-18 12:33 编辑 [/it]]
搜索更多相关主题的帖子: 程序错误 出圈 int main include 
2008-03-18 10:42
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
得分:0 
以下是原题:
有n 个人围成一圈,顺序排号, 从第一个人开始报数(1-3),凡是报到3的人退出圈子,问最后留下的是原来的第几号的那位
2008-03-18 12:35
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
得分:0 
怎么没人响应呀!
2008-03-18 12:35
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
得分:0 
#include <iostream.h>
void main()
{
    int a[101];
    int i,t=0,n=0;
    for(i=1;i<=100;i++)//为100个人编号(1-100)
       a[i]=i;
    i=1;
    while(n<99)//n不应该大于99,为99时不循环
    {
        if(a[i]!=0)//t用于循环记数
            t++;
        if(t==3) //t为3时退出者标为0,记数重新开始,退出人数加一
        {a[i]=0; t=0; n++;}
      i++;
      if(i==100)i=1;//当循环到最后时又重新开始记数
    }

    i=1;
    while(a[i]==0) i++;//找到数组中唯一没被标为0的元素
        cout<<a[i];

}
2008-03-18 14:48
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
得分:0 
上述运行结果为100,可6#的运行为1,这怎么回事呀?
定义的组数不一,6#是a[100],而上述的是a[101],但也不应该是这样的呀!
2008-03-18 14:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-203951-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.108488 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved