用C语言编程求(1+2+3+……+100)+(1^2+2^2+……+50^2)+(1/1+1/2+1/3+……+1/10

问题描述:

用C语言编程求(1+2+3+……+100)+(1^2+2^2+……+50^2)+(1/1+1/2+1/3+……+1/10)

运算结果是第一个while的和,为什么?
1个回答 分类:综合 2014-10-13

问题解答:

我来补答
执行第一个while循环后i的值已经是100了,不满足后2个while循环条件,在循环前重新赋值i=0;
再问: 我改了之后,又把p定义为实数,为什么最后的结果还是负数,溢出了吗?
再答: 计算浮点型结果,那么计算公式中所有变量最好都是浮点型,比如你的r=1.0/i;这里i是整型,r肯定要定义成浮点型,否则计算结果都是0,计算浮点型结果要将i强制转换r=1.0/(float)i;p定义成int型即可,因为都是2循环都是整型计算,另外两个r定义成2个为好。参考代码:
 
 
展开全文阅读
剩余:2000
上一页:求补英语