满意答案
最后发表由wahn
2014.04.01
采纳率:47% 等级:10
已帮助:217人
一楼代码不太正确,建议把fun函数中后两个if改成elseif,或者使用临时变量用来输出。比如说x=9的话,他这个代码就显然错了。
建议代码里多使用elseif,这样做一是可以减少函数分支数目,降低复杂度;二是为了养成良好的编码习惯,以后再写复杂程序的时候会避免很多异常情况。
void fun(int x)//题中既然说整形最好还是用int,可以在里面进行将至类型转换
{
double y;
y=0; //给需要用到的临时变量尽快初始化。
if(x>0 && x<10)
{y=x+1;}
elseif(x>=10 && x<20)
{y=2*x*x+3;}
elseif(x>=20 && x<30)
{y=sqrt(x+3);} //这个输出的结果得看编译器,有的需要强制类型转换,有的就直接这样输出就可以了
else {} //给所有用到elseif的语句最后都填个else是个非常好的编码习惯,哪怕里门什么都没有处理。有些低端的编译器,进入到没有以上情况的分支(比如说x=50),会引起系统崩溃
printf("%g\n",y);
}
接触代码6年,当了三年职业码农了,这条路不好走啊~~~
00分享举报