Admin ค๊าบ ผมขออีกที มีข้อผิดพลาด

Program Oat;
Uses Crt;
Var i,sum,a,b,x:integer;
Begin
  clrscr;
  write('Input Number : ');readln(a);
  write('Input Number : ');readln(b);
  sum:=0;
  i:=2;
  repeat
  sum:=sum+i;
  i:=i+2;
  x:=x+1;
  until i>b;
  writeln('Summary of even number from ',a,'..',b,' =',sum:3);
  writeln('Average of ',a,'..',b,' = ',sum/x:1:2);
  readln;
end.

พอรันนะคับ ถ้าใส่ 1,10 หรือ 2,8 ก้อได้อยู่ แต่ถ้าไปเริ่มที่ 8,12 หรือตัวอื่น ที่ไม่ได้เริ่มจาก 1หรือ 2 โปรแกรมจะมั่วเรยจ้า

อย่างใส่ a=8 b= 12 คำตอบได้ 42 ซะงั้นผลหารก้อไปไกลเรย

ผมลองแก้เปง

Program Oat;
Uses Crt;
Var i,sum,a,b,x:integer;
Begin
  clrscr;
  write('Input Number : ');readln(a);
  write('Input Number : ');readln(b);
  i:=a;
  repeat
  sum:=sum+i;
  i:=i+2;
  x:=x+1;
  until i>b;
  writeln('Summary of even number from ',a,'..',b,' =',sum:3);
  writeln('Average of ',a,'..',b,' = ',sum/x:1:2);
  readln;
end.

ดันหาเลขคู่ได้ไม่ว่าจะเริ่มตรงไหน แต่ถ้าใส่เลขคี่ จบข่าวคับ มันอาจเลขคี่ไปเรย T-T ช่วยผมด้วยนะค๊าบ
🏷️ หัวข้อที่เกี่ยวข้อง

💬 การตอบกลับ 7

#1
dekwit016
dekwit016
12 โพสต์
หรือว่าผมต้องใช้ if หรืออะไรอีกป่าวคับ เพื่อรับค่าช่วงไหนก้อได้ ที่จะคำนวนแต่เลขคู่ ไม่ว่าจะใส่ 13-25 หรือ 14-26 ก้อจะคำนวณแต่เลขคู่ T-T ปวดหัวมากมาย

✏️ แก้ไขล่าสุด: 9 สิงหาคม 2554

#2
dekwit016
dekwit016
12 โพสต์
พี่ Moshi ไม่อยู่ซะแล้วหรอ T-T
#3
Moshi
Moshi
16,996 โพสต์
ก็ ใช้ If ครับ

เช็คอีกทีว่า ค่าแรกมากกว่าคา่สองไหม ถ้าค่าแรกมากกว่าก็ให้ error หรือกลับไปวนลูปเรื่อยๆครับ
#4
dekwit016
dekwit016
12 โพสต์
ไม่ได้เรยค๊าบ 4 ชั่วโมงแย้ว

โปรแกรมอ.บอกต้องแบบว่าถึงจะใส่ 15 26 ก้อต้องคำนสณแค่ตัว 16 18 20 22 24 26

หรือ 15 27 ก้อต้องคำนวณ 16 18 20 22 24 26

14 25 ก้อต้อง 14 16 18 20 22 24 T-T ไม่ออกเยยอะ ช่วยทีนะค๊าบ
#5
dekwit016
dekwit016
12 โพสต์
ทำไม่ได้เรยงับ พี่ Mosh ช่วยผ๊มด้วย
#6
dekwit016
dekwit016
12 โพสต์
๊Update ตอนนี้ก้อยังไม่ได้เลยงับ T-T
#7
Moshi
Moshi
16,996 โพสต์
Program Oat;
Uses Crt;
Var i,sum,a,b,x:integer;
Begin
  clrscr;
  write('Input Number : ');readln(a);
  write('Input Number : ');readln(b);
  i:=a;
  if a<=b then
  begin
  repeat
  sum:=sum+i;
  i:=i+2;
  x:=x+1;
  until i>b;
  writeln('Summary of even number from ',a,'..',b,' =',sum:3);
  writeln('Average of ',a,'..',b,' = ',sum/x:1:2);
  readln;
  end
  else
  writeln('Error ตัวแปรแรกมีค่ามากกว่าตัวแปรที่ 2');
  readln;
end.

ลองดูครับเขียนมั่วๆ ไม่ได้ลอง test