我在Pascal中的程序遇到一些问题。我需要创建一个程序来计算数字分解的偶数和奇数和。例如,如果我的数字为10,则程序应写为偶数之和为30(因为2,4,6,8,10是偶数),它应写为奇数之和为25(因为1, 3,5,7,9是奇数)。这是我尝试过的
program odd_even;
var
a,sumeven,sumodd,even,odd : integer;
begin
writeln('Enter a number : ');
readln(a);
if a mod 2 = 0 then a=even;
if a mod 2 not=0 then a=odd;
for a:1 to a do begin
sumeven:=0;
sumeven:=sumeven+even
writeln('Sum of even numbers is : ',sumeven);
sumodd:=0;
sumodd:=sumodd+odd;
writeln('Sum of odd numbers is : ',sumodd),
end;
readln
end.
编译器说我的if部分是非法的,但是我不知道该如何解决,我也尝试了其他方法,但是它说的是同样的话。如果有人可以帮助我,我将非常感激。
答案 0 :(得分:1)
首先,欢迎来到编程世界! 您的代码中有几个错误:
结果变量的初始化
sumEven:=0;
sumOdd:=0;
应该在您的for
循环之前
检查奇/偶
if a mod 2 = 0 then a=even;
if a mod 2 not=0 then a=odd;
应该在循环的内部,并且不应该检查(输入数字)是否为奇/偶,而是检查循环变量的值:
for i := 1 to a do
begin
if (i mod 2 <> 0) then sumOdd := sumOdd+1 else sumEven := sumEven+1 ;
end;
打印结果当然应该在循环之后 。 祝你好运!