这么写对不对?
double fun(int m)
{
int m,double x,double y,double s;
y=0.0;
for(m=1;m <=20;m++)
{x=double log(double m);
y+=x;
}
s=sqrt(y);
return s;
}
main()
{ printf( "%f ",fun(20));
}
这段程序大概在开始定义的时候就出错了,但是我不知道错在哪里!
能给指导下吗?
[解决办法]
语法问题不少,你应该在熟悉下语法。
double fun(int m)
{
//int m; 重复定义m?
double x = 0;
double y = 0;
double s = 0;
// double x,y,s;
for(m=1;m <=20;m++)
{
x= /*double*/ log(double(m)); //log本来就返回double,
//而且你要转换应该加个(), m要转换的话加()
y+=x;
}
s=sqrt(y);
return s;
}
main()
{ printf( "%f ",fun(20));
}
[解决办法]
int m,double x,double y,double s;
在一行语句里,最多只能声明一种类型的变量。
可改为:
int m;
double x, y, x;