其实我不知道要怎么下标题才好,因为我也不知道问题出在哪边,我猜可能是内存的问
题,可是我第一次遇到这种问题,所以想问看看有没有人知道,还请不吝回答,谢谢。
程式码:
// 宣告部分
int Strength = 999;
int Agility = 999;
.
.
.
.
int tmp_Str;
int tmp_Agi;
char answer;
// 运作部分
.
.
.
.
.
tmp_Str = Strength;
tmp_Agi = Agility;
rewind(stdin);
_getch();
.
.
. (省略用printf画图的部分)
.
.
printf("1.攻击 2.技能 3.逃跑(回合数:1 / 5)\n");
printf("tmp_Agi = %d", tmp_Agi);
printf("> ");
scanf("%s", &answer);
if (answer == '1')
{
printf("tmp_Agi = %d", tmp_Agi);
.
.
.
.
}
https://i.imgur.com/r6w9W8g.png (执行的结果图)
发生的问题是当使用者输入答案后,本来存在tmp_Agi里面的数字会产生改变,可是我没动
过这个变量,用单步执行也找不出问题来。不过如果在answer上面随便宣告一个无用的int
变量,就可以避免这个问题发生,如下所示:
int tmp_Str;
int tmp_Agi;
int asdf;
char answer;
所以我猜大概是内存配置的问题,但实际上我也不太清楚,因为写程式到现在第一次发
生这问题,所以还请知道答案的人可以告诉我,谢谢。