| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 800 人关注过本帖
标题:一段总共才40行的代码,莫非灵异了?
取消只看楼主 加入收藏
hfdss
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2009-7-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
一段总共才40行的代码,莫非灵异了?
我在做一个编程小题目,不过出了一个很奇怪的问题。
我的代码如下。环境为 Vista + VC2005 Express

#include "stdafx.h"
#include <iostream>
#include <string>   
#include <stdlib.h>
#include <math.h>

using namespace System;
using namespace std;

#define TotalNumber 13    //定义总人数
#define Step 3            //定义剔除的步长

void main(){
        int Person [TotalNumber] = {};    //定义人的数量,用数组实现。
        int pointer = Step;                //定义退出的数字指针。但不是指针类型。

        for (int i = 1; i <= TotalNumber; i ++) {
            //进行数据初始化。
            Person [i] = i;
            cout << Person [i] << endl;
        }
            cout << endl << Person [TotalNumber] << endl;    //**********到这里还没有变**************
        int Counter = 0;    //用于限定循环次数
            cout << endl << Person [TotalNumber] << endl;    //***********到这里就变了***************
        while (Counter < 1) {
            pointer = pointer % TotalNumber;    //只要超过总数,就从头开始。
            if (Person [pointer] != 0) {
                //如果正好不是 0,也就是说,应该退出
                Person [pointer] = 0;            //修改为 0,让他退出
                pointer = pointer + Step;        //指针后移一个步长。
            }
            else {
                //如果正好是 0,也就是说,这个位置的人已经退出了
                pointer ++;        //指针后移一个位置。
            }
            Counter ++;
        }
        system("pause");
}
在第 22 行和第 24 行之内,奇怪的现象就出现了。我就是给一个变量进行了定义并赋值,却把数组中最后一个数的数值给改变了。到底是怎么回事呀?请高手帮我诊断。谢谢了。
搜索更多相关主题的帖子: 灵异 代码 
2009-07-17 20:48
hfdss
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2009-7-17
收藏
得分:0 
非常感谢楼上的。
不过有一点我有点疑惑,为什么 Person [13]溢出之后, Counter 编程了 13?
能告诉我么?谢谢。
另外,我刚刚注册不久,不能给你加分,一旦我上网,就给你加。谢谢你。

[[it] 本帖最后由 hfdss 于 2009-7-17 21:18 编辑 [/it]]
2009-07-17 21:07
快速回复:一段总共才40行的代码,莫非灵异了?
数据加载中...
 
   



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

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