有人能给我解释一下如何用 Pascal 编写一个程序,每隔一个数字相加直到总和为 100 吗?
Can someone explain me how to make a program in pascal that will add every second number until sum is 100?
我试过这样做,但似乎不起作用。
它只在我输入数字 55 3 次时有效,但在任何其他情况下都无效。
var
x: array[1..100] of integer;
i, suma: integer;
begin
suma := 0;
repeat
readln(x[i]);
for i := 1 to 100 do
begin
if i mod 2 = 0 then suma := suma + x[i];
end;
until suma >= 100;
end.
在这里我想我终于做了一个程序,可以按照我在问题中的要求去做。
var
x: integer;
i, suma: integer;
begin
suma := 0;
i := 1;
repeat
readln(x);
if i mod 2 = 0 then suma := suma + x;
i := i + 1;
until suma >= 100;
end.
看看你的代码在做什么。
你重复直到 suma
大于或等于 100
。这很好。在此您读入 x[i]
但 i
尚未初始化。
假设这可行,然后循环 100 次,将数组的未初始化成员添加到 suma
。
这基本上是不必要的。数组当然是。
我们需要循环repeat直到和大于等于100。在这个循环中,我们需要读入数字,我们需要跟踪当前循环是偶数还是奇数.
program Test;
var
user_input: integer;
sum: integer = 0;
i: integer = 0;
begin
repeat
read(user_input);
if i mod 2 = 0 then
sum := sum + user_input;
i := i + 1;
until sum >= 100;
end.
我知道你有解决方案,但我会把我的解决方案放在这里。
其实,你只需要移动线:
readln(x[i]);
到 begin
代码之后的行。
您的新代码将是:
var x: array[1..100] of integer;
i, suma: integer;
begin
suma := 0;
for i := 1 to 100 do
begin
readln(x[i]);
if i mod 2 = 0 then suma := suma + x[i];
if suma >= 100 then exit;
end;
end.
P/S:你不需要重复……直到。您可以使用 if 'condition' then exit;
我试过这样做,但似乎不起作用。 它只在我输入数字 55 3 次时有效,但在任何其他情况下都无效。
var
x: array[1..100] of integer;
i, suma: integer;
begin
suma := 0;
repeat
readln(x[i]);
for i := 1 to 100 do
begin
if i mod 2 = 0 then suma := suma + x[i];
end;
until suma >= 100;
end.
在这里我想我终于做了一个程序,可以按照我在问题中的要求去做。
var
x: integer;
i, suma: integer;
begin
suma := 0;
i := 1;
repeat
readln(x);
if i mod 2 = 0 then suma := suma + x;
i := i + 1;
until suma >= 100;
end.
看看你的代码在做什么。
你重复直到 suma
大于或等于 100
。这很好。在此您读入 x[i]
但 i
尚未初始化。
假设这可行,然后循环 100 次,将数组的未初始化成员添加到 suma
。
这基本上是不必要的。数组当然是。
我们需要循环repeat直到和大于等于100。在这个循环中,我们需要读入数字,我们需要跟踪当前循环是偶数还是奇数.
program Test;
var
user_input: integer;
sum: integer = 0;
i: integer = 0;
begin
repeat
read(user_input);
if i mod 2 = 0 then
sum := sum + user_input;
i := i + 1;
until sum >= 100;
end.
我知道你有解决方案,但我会把我的解决方案放在这里。
其实,你只需要移动线:
readln(x[i]);
到 begin
代码之后的行。
您的新代码将是:
var x: array[1..100] of integer;
i, suma: integer;
begin
suma := 0;
for i := 1 to 100 do
begin
readln(x[i]);
if i mod 2 = 0 then suma := suma + x[i];
if suma >= 100 then exit;
end;
end.
P/S:你不需要重复……直到。您可以使用 if 'condition' then exit;