|
楼主 |
发表于 2003-2-25 17:52:34
|
显示全部楼层
chq808cn兄,我觉得你应该学学数据结构,我在学C++的时候也在一边学数据结构,我觉得数据
chq808cn兄,我觉得你应该学学数据结构,我在学C++的时候也在一边学数据结构,我觉得数据结构对写程序很有帮助的。
对了,数据结构问题,请帮忙解释一下好吗?
#include <iostream.h>
#include <iomanip.h>
void main()
{
//建立小孩数组
const int num=10; //小孩数
int interval; //每次数interval个小孩,便让该小孩离开
int a[num]; //小孩数组
//给小孩编号
for(int i=0;i<num;i++) //小孩的编号只与小孩数有关
a=i+1;
//输入数小孩间隔
cout<<"lease input the interval:"; //输入一个数小孩个数
cin>>interval;
//将全体参加的小孩输出
for(int i=0;i<num;i++) //顺序输出开始时的小孩编号
cout<<a<<",";
cout<<endl;
int k=1; //标识处理第K个离开的小孩
int i=-1; //数组下标(下一个值0就是第一个小孩的下标)
//处理获胜前的小孩
while(1)
{
//在圈中数interval个小孩
for(int j=0;j<interval;)
{
i=(i+1)%num; //对下标加1求模
cout<<setw(4)<<i;
if(a!=0) //如果该元素的小孩在圈中,则承认数数有效
j++;
}
if(k==num)break; //该小孩是最后一个(胜利者)吗?
cout<<a<<","; //输出离开的小孩编号
a=0; //标识该小孩已离开
k++; //准备处理下一个圈中小孩
}
//break 语句跳转到此
cout<<"\n NO."<<a<<" boy's won. \n"; //输出胜利者
}
程序运行的结果我想不通,请指点一下。请帮我标出结果(每一轮数到的数以及最后的结果好吗)?非常谢谢! |
|