C语言中如果实现(5+5*5)*(4+4*4)........(1+1*1)

来源:百度知道 编辑:UC知道 时间:2024/06/18 09:48:37
自学初期,我编出来的结果:
main()
{int v=1,i;
for(i=1;i<6;i++)
v=v*(i+(i*i));
printf("%d",v);
}
但与我用计算器算的不同!错在哪里了呢???

算的最后结果溢出了,应该定义为长整形。
main()
{long v=1,i;
for(i=1;i<6;i++)
v=v*(i+(i*i));
printf("%ld",v);
}

没有错误。

没有

因为这个结果已经超出了 int的范围了,所以定义的时候不能定义为int类型的代码如下:
#include "stdio.h"
main()
{ float i,sum=1;
for(i=5;i>=1;i--)
sum*=(i+i*i);
printf("\n sum=%f",sum);
}
你只需吧你的代码中的int类型改变一下即可,不过你这样的结果是执行(1+1*1)*(2+2*2)……(5+5*5),并不是你写的。这样有时不符合题目要求的哦!