先要了解一下C语言里所有的位运算都是指二进制数的位运算。即使输入的是十进制的数,在内存中也是存储为二进制形式。
“<<”用法:
格式是:a<
功能:将整型数a按二进制位向左移动m位,高位移出后,低位补0。
“>>”用法:
格式是:a>>m,a和m必须是整型表达式,要求m>=0。
功能:将整型数a按二进制位向右移动m位,低位移出后,高位补0
double fun(int n)
{
int i,m;
double t,sum=0;
for(i=1;i<=n;i++)
{
m=i*i;
t=1/m;
sum+=t;
}
return(sum);
}
绝对没问题,TC编译通过
#include
#include
double fun(int m)
{
double y=0.0,i,t,a;
for(i=1;i<=m;i++)
{
t=i*i;
a=1/t;
y=y+a;
}
return y;
}
main()
{
int n;
printf("Enter n: ");
scanf("%d", &n);
printf("\nThe result is %1f\n", fun(n));
}
在fun函数体的最后加上语句return y; 就可以了:)