问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言数据溢出问题,下面是程序与输入20后溢出的情况

发布网友 发布时间:2024-01-05 16:10

我来回答

2个回答

热心网友 时间:2024-01-25 10:36

#include <stdio.h>
double fun(int n)
{   
    int i;    
    double result=1;//只改这儿就行double表示数的范围更大,long result=1;    
    for(i=2;i<=n;i++)    
    {        
        result*=i;   
    } 
    return result;
}
int main()
{   
    int n;   
    double ret;   
    scanf("%d",&n);   
    ret = fun(n);    
    printf("ret = %.0f\n",ret);    
    return 0;
}

热心网友 时间:2024-01-25 10:36

double fun(int n)函数中 long result=1;改为 double result=1;就ok了
因为阶乘的结果很大,不用浮点运算的话,否则的话就得自己写大数运算的算法了
谢谢采纳
c语言中数据溢出的问题怎么解决?

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp,输入问题基础代码。2、在test.cpp文件中,将int全部调整为long long,printf函数调整为:printf("%lld!=%lld\n",n,count);。3、编译器运行test.cpp文件,此时成功打印出了大数。

C语言编程问题,数据溢出。

你的算法有问题:你这个程序的算法没有你想的这么容易,因为实际上中间你是在做幂运算,而幂运算是非常容易溢出的;但是考虑到实际上你只是需要输出后面三位数字即可,那么按照乘法(幂运算其实是乘法运算)的规则,我们知道其实影响最后三位的是两个乘数的后三位,高于后三位的是不参与对乘积的后三位...

C语言关于整型数据溢出的一个问题请教

long 型数据要加附加格式说明符 l 。输出的格式:printf("%ld,%ld",a,b);注意,2个数都是用"%ld"格式输出,否则可能会得到意外的结果。你可以试试用下面的几个语句依次替换printf(“%d,%d”,a,b);1.printf("%d,%ld",a,b);2.printf("%d\n",a);printf("%d\n",b);3.printf("%ld\...

C语言关于数据溢出

这不是数据溢出。这是由于没有指定小数位数(系统默认输出6位小数,加上2位整数,就是要输出8位数字),float只能保证7位有效数字,多余位数上的数字是无效的。如果以%.1f或%g格式输出,就不会出这种错了。如果改为double类型(相应地,输入语句要改为%lf格式),这样可以有15位有效数字,也不会出...

求助c语言 好像是数据溢出

虽然我没有看到你的 C 语言源程序,但是根据我的编程经验,引起数据溢出的情况通常有:(1)、数组下标越界。这个是 C 语言初学者最容易犯的错误!例如,定义如下数组:int num[10] ; 在 C 语言中其有效的下标范围应该是:0-9,而不是:1-10!如果在源程序中引用了 num[10]变量,那么必定会...

为什么C程序中33000,20的平均数是-16258.0000000?

在C语言中,这个问题的原因很可能是整数溢出。整数溢出是当一个整数超出其可以表示的范围时发生的现象。在C语言中,整数类型(例如int)有一定的范围,对于有符号整数,通常情况下,int类型的变量可以表示-2^31 (-2147483648) 到 2^31-1 (2147483647) 之间的整数。当您尝试计算33000和20的平均数时,...

(c语言)输入20个数,输出它们的平均值,并且输出与平均值之差的绝对值最...

include &lt;stdio.h&gt;#include &lt;math.h&gt;#define N 20void main(void){ float a[N],average = 0, s = 0, t = 0;//注意这个t赋值,部分编译器不会如你所愿 int i,k; for(i =0; i&lt; N;i++) //这个不能等于,本身从0开始,到N-1个正好是N个 scanf("%f",&amp;a[i...

关于c语言整型数据的溢出问题~~求高手多指点~~

就可以得到原码。假设你是16位系统。100000000000000 求补=1 11111111111111+1=00..00 b就溢出为0了。不过现在都是32位系统了,int类型都是4个字节的都,a表示成00..00100000000000000了。楼主的的这个程序不能造成溢出。所以printf ("%d",b);打印出来的b应该是32768,也不是 -32768 ...

c语言溢出是什么问题

溢出原因 数据类型超过了计算机字长的界限就会出现数据溢出的情况。导致内存溢出问题的原因有很多,比如:(1) 使用非类型安全(non-type-safe)的语言如 C/C++ 等。(2) 以不可靠的方式存取或者复制内存缓冲区。(3)编译器设置的内存缓冲区太靠近关键数据结构。因素分析 1.内存溢出问题是 C 语言或者 C++...

c语言算术溢出问题怎么解决?

sqrt的函数原型为double sqrt(double);参数的类型为double,返回值也是double 你在这里i是long int类型的,根据提示叫你强制转换,你可以这样 x = sqrt((double)i + 100);如有用,望采纳

c语言怎么解决数据溢出的问题 c语言数据溢出怎么输出 C语言的整型数据的溢出 c语言数据溢出32767 c语言如果数据溢出怎么办 c语言数据溢出怎么解决 c语言int型怎么解决溢出问题 C语言数据溢出计算 c语言数值溢出
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
惠州市中级人民法院机构设置 小米6x黑屏无法唤醒 PPT无法打开ppt无法打开需要修复 红薯和红糖一起煮好吗 红薯能不能和红糖一起吃吗 红薯与红糖一起煮好吗 盗汗醒后感觉上半身热出汗、嘴干、但腿脚冷怎么办 ...上半身总是出汗,感觉很热是什么原因。 屁股以上一直到头部出汗特别厉害,而两条腿却冷飕飕的,不能招风怎么办... 上半身爱出汗,下半身不爱出汗,冬天手脚冰凉,有些便秘,这属于什么体质... c语言 为什么算阶乘的话 数过大就会变成负的 然后再大一点程序算出的... 桐城市林源塑料有限公司怎么样? ...清暑殿 杨柳绿 云对( ),雪对( ),晚照对( ).来鸿对( ),宿鸟对... 柜子如何安装滑轮轨道 门窗五金行业十大品牌 ...有特殊困难,不能按期缴纳税款的,经批准,可以延期交纳税款,但是最长... 怎么一年内强制改第二次 怎么一年内强制改第二次 c语言编写的求阶乘的程序,小点的数能正常运行,大的数输出为0,这神马情 ... C语言中的阶乘怎么结果是这样的?? 再次请教c语言高手,为什么我输入n:20的时候 输出的是-2102132736_百度知 ... 一年改2次的办法 一年改2次的办法 消失的孩子在哪里拍的 息,的组词有哪些呢 桐城市创拓塑料包装有限公司怎么样? 一年内第二次修改技巧 这张图是哪部电影,看图猜电影,求解答 修改一年内如何二次修改吗苹果 socket传输中,java的对象序列化和反序列化过程中是如何确保数据的完整... QQ飞车手游惊鸿和火神哪个好 纳税人申请延期缴纳税款最长不得超过 消失的孩子楚萍被谁侵害 ...公司派遣至用人单位工作两星期就辞职了,这段经历会记入档案么... 请问一下就是蒸柜蒸完馒头后要不要立马拿出来,多久能拿出来,另外拿出来... JCMJ注册过商标吗?还有哪些分类可以注册? 深圳海关协管员换公司了 一年内能改第二次吗? 一年内能改第二次吗? 城市轨道交通车辆发生空转滑行的危害有? 一年内可以修改几次吗? 灌篮高手日语怎么写 幻想打工是多么的舒服,出来了社会才知多么的残酷,打工的路上... 一年改2次的办法 眼轴长度34mm(2800度近视)听被人说眼轴超过27mm就很容易视网膜脱落了... 山东有哪些之最? 旅顺口区开发区郁林海景物业电话郁林海景花园小区物业电话? 一年内可以修改几次吗? 山水富地物业电话谁知道? ...不要复制的,要原创的。每章主要内容要100~200字之间