注册 登录
编程论坛 C++教室

新手上路 不正确结尾

七七七果 发布于 2015-11-10 12:02, 389 次点击
#include<iostream>
using namespace std;
int main()
{ int n; //定义一个整形变量,表示人的个数。
int m; //定义约瑟夫环的参数。
int a[100]; //定义一个数组,用于计算约瑟夫环的位置。
cout<<"input n=";  cin>>n;
cout<<"input m=";
cin>>m;
 for(int j=0;j<n;j++)

  a[j]=j+1; //给数组赋值,让数组的每个值就是这个元素的编号。

 int k=1; //定义一个标志k,当K等于N的时候,表示到达约瑟夫环的最后位置。
 int i=-1 ;
 while(1) {
 for(int j=0;j<m;)
 { i=(i+1)%n; //不停的取数组的下一个元素。
 if(a[i]!=0)
 j++; //如果这个元素没有被标记为0,说明这个位置还没有被排除,j加1,进入下一个循环 }
  cout<<a[i]<<endl; //输出出列编号的序列
 if(k==n) break; //如果标志K等于n,说明约瑟夫环的循环到达最后一个位置,跳出While死循环。
 a[i]=0; //否则,把这个位置的元素设为零,标志它被排除。
 k++; }   
return 0; }
1 回复
#2
wengbin2015-11-10 14:43
呃,你整个代码中3个"{"而只有两个"}"。代码排布乱,排好了就能看出来了
1