数组循环移位出现不确定的值

simon_夏 2012-04-03 11:10:01
#include <iostream>
#include <vector>

using namespace std;

int main()
{
int n,T,m,place,temp;
size_t i,j,k = 0;

cout << "input the number of people( 0<=n<=20 ) and number of group(T)" << endl;
while ((cin >> n >> T) && (n < 0 || n > 20))
{
cout << " 0<=n<=20" << endl;
}
int peo[n-1],peonew[T-1][n-1];
vector<int> mm;
for (j = 0;j != n; ++j)
peo[j] = j + 1;

for (j = 0;j != n; ++j)
cout << peo[j] << " " ;

cout << endl;

cout << "input " << T << " groups of m( 0<=m<=100) " << endl;
for (i =0; i != T; ++i)
{
cin >> m;
mm.push_back(m);
}
vector<int>::size_type ix = 0;
for (i = 0;i != T; ++i )
{
place = mm[ix] % n;
++ix;
for (j = (n - place); j != n; ++j,++k)
{
temp = peo[j];
peonew[i][k] = temp;
}
for (j = 0,k = place; j != n - place; ++j,++k)
{
temp = peo[j];
peonew[i][k] = temp;
}


}
for (i = 0;i != T; ++i)
{
for (j =0;j != n; ++j)
cout << peonew[i][j] << " ";
cout << endl;
}
cout << endl;


return 0;
}


运行结果如下:
input the number of people( 0<=n<=20 ) and number of group(T)
20 8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
input 8 groups of m( 0<=m<=100)
1 2 3 4 5 6 7 8

20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
19 -1081969020 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14
14 15 16 17 18 19 20 20 2 3 4 5 6 7 8 9 10 11 12 13
13 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 12 13

其中第2,7,8组出现错误

求问各位大神
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
loongee 2012-04-08
  • 打赏
  • 举报
回复
楼主什么编译器?
JoeBlackzqq 2012-04-08
  • 打赏
  • 举报
回复
一定是数组越界了,仔细检查下
ReverseEngineering 2012-04-08
  • 打赏
  • 举报
回复
我改了一个地方:

for (j = (n - place), k = 0; j != n; ++j,++k)

你的:

for (j = (n - place); j != n; ++j,++k)

照你的测试数据,我用 20 4,都正常,20,5以上,最后一行出错,开头对,后面全是20,一时想不到什么问题!

你试试看,看看你的是怎样,有问题再联系,我其实不懂向量,猜的。

33,317

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧