程序会输出负数的原因是,在这个程序中你没有对每次运算的结果进行检查,因此当乘积超出了long类型的最大值时,就会产生溢出,导致结果为负数。
为了避免这个问题,你可以在每次运算后检查结果是否已经超出了long类型的范围,并在必要时退出循环。可以这样改:
#include<stdioh>
main()
{
long i;
i=chengji();
printf("%ld", i);
}
long chengji () {
long a, b=1;
for (a=1; a<=100; a+=2)
{
if (b > LONG_MAX/a) break;
b = a;
}
return b;
}
一,下标可能为负数。
二,可能出现变量名称重复。
三,当有时出现有时没有出现时,可能是由于循环使数据不同,导致下标有时为整数,有时为负数,有时为正整数。
1,MATLAB 是商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
2,MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
3,MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
4,MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多。
补充:
那建议用条件格式去判断,当A1结果是负数时,就整个单元格都显示红色提示色以作警告效果,这样就更直接了。
方法:
选中A1后打开菜单“格式”-“条件格式”-“条件1”,在“单元格数值”中选“小于”,旁边输入一个0,最后点开旁边的“格式”按钮选红色提示色(如果希望连结果也变成红色,可以连字体也选为红色就可以),保存就行了。
以上就是关于【C语言】有没有大佬知道这个程序为什么会输出一个负数全部的内容,包括:【C语言】有没有大佬知道这个程序为什么会输出一个负数、MATLAB出现负数是什么意思、Excel程序换算出来的结果为负数时报警等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)