Pascal - 我如何对所有可以被 4 除的数字求和,必须使用 repeat
Pascal - How do i sum all the numbers that can be divided by 4, must use repeat
求和不正确,乘法也不正确,解这道题必须用repeat,我想问题出在sum:=i+i
,但我不知道怎么解
program SAD;
uses crt;
var a, i, sum, prod: integer;
begin
clrscr;
sum:=0;
prod:=0;
{Sum}
repeat
for i:=1 to 26 do
if i mod 4 = 0 then sum:=i+i;
until i = 26;
{Multiplication}
repeat
for a:=1 to 26 do
if a mod 4 = 0 then prod:=a*a;
until a = 26;
writeln('Suma numerelor divizate la 4 este:', sum);
writeln('Produsul numerelor divizate la 4 este:', prod);
end.
我认为“使用重复”指令可能是为了让您也避免使用 for
。
您的代码中存在一些错误:
在求和循环中,您应该将 i
添加到 sum
,而不是自身。
在 prod 循环中,由于您在开始时将 prod
设置为零,因此它将保持为零,因为零乘以任何值都是零。所以你需要调整你的prod
计算逻辑,如果prod
为零,当满足mod 4
条件时,你设置prod
为[的当前值=19=],否则你乘以 a
.
这里有一些代码修复了上述问题并避免使用 for
。
program Sad;
uses crt;
var
a, i, sum, prod: integer;
begin
clrscr;
sum:=0;
prod:=0;
{Sum}
i := 0;
repeat
inc(i);
if (i mod 4) = 0 then
sum := sum + i;
until i = 26;
{Multiplication}
a :=0;
repeat
inc(a);
if a mod 4 = 0 then begin
if prod = 0 then
prod := a
else
prod := prod * a;
end;
until a = 26;
writeln('Suma numerelor divizate la 4 este:', sum);
writeln('Produsul numerelor divizate la 4 este:', prod);
readln;
end.
求和不正确,乘法也不正确,解这道题必须用repeat,我想问题出在sum:=i+i
,但我不知道怎么解
program SAD;
uses crt;
var a, i, sum, prod: integer;
begin
clrscr;
sum:=0;
prod:=0;
{Sum}
repeat
for i:=1 to 26 do
if i mod 4 = 0 then sum:=i+i;
until i = 26;
{Multiplication}
repeat
for a:=1 to 26 do
if a mod 4 = 0 then prod:=a*a;
until a = 26;
writeln('Suma numerelor divizate la 4 este:', sum);
writeln('Produsul numerelor divizate la 4 este:', prod);
end.
我认为“使用重复”指令可能是为了让您也避免使用 for
。
您的代码中存在一些错误:
在求和循环中,您应该将
i
添加到sum
,而不是自身。在 prod 循环中,由于您在开始时将
prod
设置为零,因此它将保持为零,因为零乘以任何值都是零。所以你需要调整你的prod
计算逻辑,如果prod
为零,当满足mod 4
条件时,你设置prod
为[的当前值=19=],否则你乘以a
.
这里有一些代码修复了上述问题并避免使用 for
。
program Sad;
uses crt;
var
a, i, sum, prod: integer;
begin
clrscr;
sum:=0;
prod:=0;
{Sum}
i := 0;
repeat
inc(i);
if (i mod 4) = 0 then
sum := sum + i;
until i = 26;
{Multiplication}
a :=0;
repeat
inc(a);
if a mod 4 = 0 then begin
if prod = 0 then
prod := a
else
prod := prod * a;
end;
until a = 26;
writeln('Suma numerelor divizate la 4 este:', sum);
writeln('Produsul numerelor divizate la 4 este:', prod);
readln;
end.