过期凤梨 2023-06-20 07:59 采纳率: 100%
浏览 25
已结题

C语言计算两个数阶乘和的输入问题

当用函数计算两个数的阶乘和时,主函数中输入两个数,被调函数计算一个数的阶乘和,然后主调函数中两个数分别放入背调函数中相加,但为什么运行时同一行输入两个数时没结果,换行输入两个数时才有结果?

  • 写回答

3条回答 默认 最新

  • 小杰911 2023-06-20 09:21
    关注

    可能是因为同一行输入两个数时,输入缓冲区中会包含一个换行符,而被调函数在计算阶乘时会把这个换行符也当成数字的一部分,导致计算出错。而换行输入两个数时,输入缓冲区中不会包含换行符,所以可以正常计算阶乘和。为了避免这种情况,可以在输入时使用scanf函数,并在格式字符串中指定忽略换行符,例如:

    
    scanf("%d%d\n", &a, &b);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 创建了问题 6月20日