Pascal程序无法输出正确计算结果,始终显示993求助
问题原因及解决方案
核心问题
你的程序始终输出993的原因很明确:
- 变量
b仅在程序初始化时被赋值为1000 - 7 = 993,后续整个循环过程中完全没有更新过b的值。 - 循环里每次执行
writeln(b),输出的都是这个固定的初始值,自然不会随a的变化而改变。
逻辑验证
看循环内的执行顺序:
writeln (a - 7, ' - 7?'); // 这里输出的是当前a减7的临时计算值 delay(120); a := a - 7; // a被更新为减7后的结果 writeln (b); // 但b还是最初的993,从未被修改
修正方案
你有两种方式得到正确的输出:
- 直接输出更新后的
a(因为a已经完成减7操作):// 把循环里的writeln(b);替换为 writeln(a); - 每次循环同步更新
b的值:a := a - 7; b := a; // 新增这行,让b跟随a的变化 writeln(b);
内容的提问来源于stack exchange,提问作者user20519015
相关产品推荐
相关产品推荐

