当用函数计算两个数的阶乘和时,主函数中输入两个数,被调函数计算一个数的阶乘和,然后主调函数中两个数分别放入背调函数中相加,但为什么运行时同一行输入两个数时没结果,换行输入两个数时才有结果?
3条回答 默认 最新
小杰911 2023-06-20 09:21关注可能是因为同一行输入两个数时,输入缓冲区中会包含一个换行符,而被调函数在计算阶乘时会把这个换行符也当成数字的一部分,导致计算出错。而换行输入两个数时,输入缓冲区中不会包含换行符,所以可以正常计算阶乘和。为了避免这种情况,可以在输入时使用scanf函数,并在格式字符串中指定忽略换行符,例如:
scanf("%d%d\n", &a, &b);本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报