分段函数 时间限制 : 1 Sec 内存限制 : 128 MB [ 提交 ] 题目描述 输入 先输入一个整数 n ,表示后面总共要输入 n 组测试数据; 然后输入 n 组测试数据,每组测试数据是一个双精度浮点数 x 。 输出 根据输入的 n 组测试数据,对应输出 n 个输出结果,每个输出结果单独占一行,即每个输出结果后要加换行符。 样例输入 3 25 -2 49 样例输出 y=125.000000 y=1.000000 y=6.000000 针对上面的问题,编写不完整程序如下,请填空。程序可点击题头位置的“【提交】”,在 ACM 网站提交。 方法一:采用if-else结构 #include
#include
int main(void) { int n; double x,y; scanf("%d",&n); while(n--) { scanf("%lf",&x); if(________) y=(________)/2; else if(x<10) y=3+exp(x); else if(x<20) y=log10(x); else if(x<30) y=pow(x,1.5); else if(x<50) y=sqrt(x)-1; else y=3*cos(x); printf("y=%lf\n",y); } return 0; } 方法二:采用 switch 结构 #include
#include
int main(void) { int n,t; double x,y; scanf("%d",&n); for(;n>0;n--) { scanf("%lf",&x); t=x/10; if(x<0) t=_______; switch(t) { case -1:y=fabs(x)/2;_______; case 0:y=3+exp(x);break; case 1:y=log10(x);break; case 2:y=pow(x,1.5);break; case 3: case 4:y=sqrt(x)-1;break; default:y=3*cos(x); } printf("y=%lf\n",y); } return 0; }