搜索

大家帮我看看这个是哪里出问题了?

查看数: 843 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-3-5 21:56

正文摘要:

#include <stdio.h> #include <stdlib.h> int main() {         printf("1*3*...*99=? \n");     int i=1,t=1;     while(i<=99)     {   &n ...

回复

womei520 发表于 2014-3-14 18:29:54
不懂不懂不懂不懂
rosynirvana 发表于 2014-3-14 00:34:40
说用double的别逗了
哪里算阶乘只要十几位数字的?
tao6980919 发表于 2014-3-14 00:09:17
double 就可以解决
rosynirvana 发表于 2014-3-6 12:44:23
大数乘法用C的内置类型放不下
要自己模拟
初学者别尝试了,写起来真的很烦躁的
rosynirvana 发表于 2014-3-6 12:42:57
刘玟羽 发表于 2014-3-6 10:13
有符号整型最大值32767,无符号整形最大值65535。很明显你的结果溢出了

这又是老古董数据了
32位int能达到21亿
刘玟羽 发表于 2014-3-6 10:13:45
有符号整型最大值32767,无符号整形最大值65535。很明显你的结果溢出了
4399APPLE 发表于 2014-3-6 08:56:37
上溢,建议用double类型,要double溢出可不是那么容易的~
李掌柜 发表于 2014-3-5 22:11:37
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.         double i=1,t=1;   //类型改下试试~~
  6.     printf("1*3*...*99=? \n");  
  7.     while(i<=99)
  8.     {
  9.         t=t*i;
  10.         i=i+2;
  11.     }
  12.     printf("1*3*...*99=%d \n",t);
  13. system("pause");
  14. return 0;
  15. }
复制代码
快速回复 返回顶部 返回列表