
正文
c语言运行加法为什么会变成负的,c语言为什么加法结果不同
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言,为什么它的运行结果为负值?
1、你计算100!呀,int存不下的,这个结果太大了,溢出了,所以可能会出现结果为负数,哪怕不是负数结果也不是正确的。
2、这个问题有多种可能,不一而足。算法有错误,最终计算结果是负数。输出自然会是负数。例如:int a=1;int b=a-2;printf(b=%d,b);//输出结果:b=-1超过变量类型的最大取值范围,发生溢出。
3、程序会输出负数的原因是,在这个程序中你没有对每次运算的结果进行检查,因此当乘积超出了long类型的最大值时,就会产生溢出,导致结果为负数。
4、你的主要原因是变量w没有初始化,是内存中的遗留值,导致最后输出的结果中全部学生的平均值为2000多的一个负数。
相关问答
Q1: c语言中求救这个程序运行结果怎么有个负号?
1、程序会输出负数的原因是,在这个程序中你没有对每次运算的结果进行检查,因此当乘积超出了long类型的最大值时,就会产生溢出,导致结果为负数。
2、(-5)*(-5)== 5 5 ;是完全成立的。所以结果中有负数是正常的。
3、你计算100!呀,int存不下的,这个结果太大了,溢出了,所以可能会出现结果为负数,哪怕不是负数结果也不是正确的。
4、算法有错误,最终计算结果是负数。输出自然会是负数。例如:int a=1;int b=a-2;printf(b=%d,b);//输出结果:b=-1超过变量类型的最大取值范围,发生溢出。例如Turbo C里int是16位,取值范围-32768~32767。
5、你的主要原因是变量w没有初始化,是内存中的遗留值,导致最后输出的结果中全部学生的平均值为2000多的一个负数。
6、个数是对的,0-151554545共有151554546个数,其中奇数偶数各有75777273个。
Q2: c语言正数相加减乘除为啥会出现负数
当你计算的数值超出这个范围就会溢出,结果就不正确了。
这和C语言中数据的储存有关。C语言中数据的储存空间是有限的,比如说整型数据,占四个字节,从而整型数是有范围的,从-2^31+1到2^31,正负号根据二进制数第一位决定。
编译器的问题。有可能你的编译器int类型是16位的。你可以把你的sum类型定义成long试一试。
程序会输出负数的原因是,在这个程序中你没有对每次运算的结果进行检查,因此当乘积超出了long类型的最大值时,就会产生溢出,导致结果为负数。
因为两个负数相乘也会也能得到与两个正数相乘相同的结果,如:(-5)*(-5)== 5 5 ;是完全成立的。所以结果中有负数是正常的。
出现负数,是因为奇数、偶数的和太大,超过了long(长整型)类型的最大值了。个数是对的,0-151554545共有151554546个数,其中奇数偶数各有75777273个。
Q3: C语言运行结果的时候为什么会出现负数
你计算100!呀,int存不下的,这个结果太大了,溢出了,所以可能会出现结果为负数,哪怕不是负数结果也不是正确的。
程序会输出负数的原因是,在这个程序中你没有对每次运算的结果进行检查,因此当乘积超出了long类型的最大值时,就会产生溢出,导致结果为负数。
这个问题有多种可能,不一而足。算法有错误,最终计算结果是负数。输出自然会是负数。例如:int a=1;int b=a-2;printf(b=%d,b);//输出结果:b=-1超过变量类型的最大取值范围,发生溢出。
关于c语言运行加法为什么会变成负的和c语言为什么加法结果不同的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






