读书人

这么写对不对?该怎么处理

发布时间: 2012-03-07 09:13:51 作者: rapoo

这么写对不对?
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;

读书人网 >C++

热点推荐