我在Pascal中的偶数和奇数有一些问题

时间:2019-12-05 18:57:53

标签: pascal

我在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部分是非法的,但是我不知道该如何解决,我也尝试了其他方法,但是它说的是同样的话。如果有人可以帮助我,我将非常感激。

1 个答案:

答案 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;

打印结果当然应该在循环之后 。 祝你好运!