无所不能样样精通的大佬们,我的问题在哪

在学C的fw 2024-10-26 22:05:53

代码有问题,输入96~103的时候输出0

诚邀解答

...全文
84 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
forever74 10-27
  • 打赏
  • 举报
回复 1

你用整数思维去理解浮点数了,9.8也是大于9的,但除以10以后整数部分就没了。

  • 举报
回复
@forever74 忘记temp是long double 类型的了,大佬厉害,谢谢提醒
  • 打赏
  • 举报
回复 1

计算保留高6位就足够了。

#include <stdio.h>

int main()
{
  int f = 1;

  for (int n, i = (scanf("%d", &n), 2); i <= n; i++)
    if ((f *= i) > 1000000) while (f > 1000000) f /= 10;
  while (f >= 10) f /= 10;
  printf("%d\n", f);

  return 0;
}

69,716

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧