ファクトリアルプログラムはプロンプトを返しません。

ファクトリアルプログラムはプロンプトを返しません。

プログラム(factorial.c)が実行されているがEnterキーを押さないと、最後のプロンプトに戻りません。

#include <stdio.h>

int main()
{
  int num, i, fact = 1;

  printf("Enter a number to know its factorial: ");
  scanf("%d",&num);

  for(i=num;i>0;i--){
    fact = fact * i;
  }

  printf("Factorial of %d! = %d",num,fact);

  return 0;
}

プログラムをコンパイルして実行します。

bash-4.2$ gcc factorial.c
bash-4.2$ ./a.out
Enter a number to know its factorial: 5
Factorial of 5! = 120bash-4.2$

Enterキーを押すと、次のようになります。

bash-4.2$

答え1

printfこれはコマンドラインを介したインクルードと同じ動作です。また、同じCライブラリを使用して実装されています。行動に注意してください:

$ printf "Factorial of %d! = %d" 4 24
Factorial of 4! = 24$

次のように表示するには、リテラル改行文字(\n)を含める必要があります。printf

$ printf "Factorial of %d! = %d\n" 4 24
Factorial of 4! = 24
$

関連情報