c语言,从键盘输入一个整数n(n<1000),请计算∑n^2。

Description
从键盘输入一个整数n(n<1000),请计算∑n^2。
Input
输入数据占一行,只有一个整数n
Output
输出占一行,即计算出和的值
Sample Input

5
6

Sample Output

55
91

Source
#include<stdio.h>
#include<math.h>
int main()
{
int a,n,s,j;
while (scanf("%d",&n)!=EOF)
{
s=0;
for(j=1;j<=n;j++)
{
a=pow(j,2);
s=s+a;
}

printf("%d\n",s);

}

}
为何5的平方就成24......之后都不对啊.....

pow()函数的返回值是double(浮点)类型数据,但浮点数据不能精确的表示数据,所以只能是近似数,所以,在赋值给整型变量时,会有误差造成数据丢失。 可通过加个精度值进行弥补,如:
a=pow(j,2)+0.001; 这样就可以了!
温馨提示:答案为网友推荐,仅供参考
相似回答