我正在尝试用 C 编写一个程序,将基数 n 转换为基数 10。我有 4 个函数不包括 main:ObtainNumber、GetBase、ConvertNumberToBase10、GetMyExponential。我的主函数按以下顺序执行函数:GetBase、ObtainNumber、GetMyExponential、ConvertNumberToBase10。我的程序同时运行GetBase 函数和ObtainNumber 函数。但是,我在我的获取编号函数中使用了 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);
}
我想知道为什么会发生这种情况以及如何解决它?