#include <stdio.h>
#include <conio.h>
int main()
{
long signed fact=1;
int c, n ;
printf("Factorial to be calculated: ");
scanf("%d", &n);
for (c = 1; c <= n; c++)
fact = fact * c;
printf("Factorial of %d = %ld\n", n, fact);
getch();
return 0;
}
上記の C プログラムを実行すると、13 が得られません。正しい。出力は 12 に当てはまります。これを修正するにはどうすればよいですか? 13には長い無署名で十分だと思いました。