我对这个问题有点问题。我正在上 Pascal 编程课,这个问题在我的逻辑书中。我需要让用户输入一系列 (+) 数字,一旦他/她输入 (-) 数字,程序应该找到所有 (+) 数字的总和。我完成了这个,但现在我正在尝试这个问题的第二部分,这需要我利用嵌套循环根据用户的输入运行程序 x 次。
我不知道如何根据用户输入的数字重新运行求和过程。换句话说,程序需要 1) 询问用户他/她想要运行程序多少次
2) 开始嵌套循环,提示用户输入一系列正数 3) 用户在循环要求时输入数字 4) 负数然后表示系列结束 5) 在重复直到循环之后,程序应该然后将所有正数加在一起
步骤 2-4 是程序的一次迭代。当然,根据用户输入,我需要它运行 x 次。
以下代码是我到目前为止所拥有的,老实说我很难过:
program summation;
var num, sum, counter, userValue : integer;
begin
writeln('Run program how many times?');
readln(userValue);
for counter := 1 to userValue do
begin
sum := 0;
repeat
writeln('Enter a number: ');
readln(num);
if num >= 0 then
begin
sum := num + sum;
end;
until num < 0;
writeln('The sum is: ', sum);
readln();
end;
end.
更新 [6/27] 3:40 太平洋时间 输出:我试图上传输出的图像,但我需要 10 个代表点。无论如何,程序的输出如下:
您希望程序运行多少次?2 输入数字: 1 输入数字: 1 输入数字: -1 <-- 负数表示嵌套循环的一次迭代 输入数字: 2 输入数字: -3 <-- 负数表示嵌套循环的一次迭代嵌套循环总和是:6
负数表示程序停止迭代。但是,我希望程序将序列的总和重复三次。
更新 [6/27] 太平洋时间晚上 7:25
目前我的程序正确执行。我的意思是正确的(1)询问用户他/她想运行多少次。(2) 嵌套循环开始并提示用户输入一系列数字。(3) 一旦输入负数,就表示系列的结束。(4) 程序将正数相加。(5) 程序通过询问用户另一系列数字来重新启动。(6) 负数再次结束系列。(7)错误从这里开始:一旦程序根据用户定义的数字进行迭代(一系列数字提示),它会将之前迭代的所有总和添加到最终总和中。这不是我的目标。我的目标是有单独的总和(每次运行一个),而不是在最后一次迭代中“求和”所有总和。