1

なぜこの特定の問題が私に起こるのだろうと思っていました。お手数ですが、よろしくお願いします。

Program factorial;
uses crt;
var
  f, i: Integer;
begin
  f:=1;
  for i:=1 to 5 do
    f:= f * i;
  write(f);
  readkey;
end.

わかりました、うまくいき、結果は 120 です。これは本当です。

さて、ここで問題です。ユーザーに数値の値を入力するように依頼しても、機能しません。

Program factorial;
uses crt;
var
  i,r: Integer;
begin
  write('Enter the number');
  read(r);

  for i:=1 to r do
    r:= r * i;

  write(r);
  readkey;
end.

5 と書いた場合、出力は 600 になります。

4

3 に答える 3

10

値 r をループの停止条件として使用し、ループ内で値を変更しています。

Program factorial;
uses crt;
var
    i,r, f: Integer;
begin
  write('Enter the number');
  read(r);
  f := 1;
  for i:=1 to r do
     f:= f * i;
  write(f);
  readkey;
end.
于 2009-05-29T20:56:18.830 に答える
4

変数を再利用しrます。プログラムに入力5すると、1 回から複数回有効になります。最初の としてr開始する必要があります。1f

Program factorial;
uses crt;
var
    i,r, f: Integer;
begin
    write('Enter the number');
    read(r);
    f:=1
    for i:=1 to r do
        f:= f * i;
    write(r);
    readkey;
end.
于 2009-05-29T20:56:05.697 に答える
1

試す:

Program factorial;
uses crt;
var
i,r,x: Integer;
begin
write('Enter the number');
read(x);
r:=1
for i:=1 to x do
r:= r * i;
write(r);
readkey;
end.
于 2009-05-29T20:54:41.097 に答える