基数nの数値を基数10に変換するプログラムをCで作成しようとしています。メインを含まない、GettainNumber、GetBase、ConvertNumberToBase10、GetMyExponentialの4つの関数があります。私のメイン関数は、GetBase、GettainNumber、GetMyExponential、ConvertNumberToBase10の順序で関数を実行します。私のプログラムは、GetBase関数とGettainNumber関数の両方を実行します。ただし、GettainNumber関数でscanf関数を使用すると、プログラムは他の関数に進みません。
long int ObtainNumber (long int myNumber)
{
scanf("%ld", &myNumber);
while (myNumber > 999999999)
{
printf("Error. Please enter a number with no greater than 9 digits\n");
scanf("%ld", &myNumber);
}
return (myNumber);
}
なぜこれが起こっているのか、どうすれば修正できるのか疑問に思いました。