本帖最后由 Jack2002 于 2021-9-26 20:47 编辑
典型的逻辑不清晰,提问贴把疑问写清楚!
[C++] 纯文本查看 复制代码 #include <stdio.h>
#include <math.h>
int main()
{
double x,y;
int c;
printf("请输入实数x:\n");
//scanf("%lf",&x);
x = 3.0;
if(x<-3)
{
c=1;
}
else if(x>4)// 当x等于4.0时,会导致没有进入任何计算分支,加个default分支你就看到了
{
c=3;
}
else
{
//当x小于4.0或大于等于3.0时,c会被赋值为3,即不满足第一个if,也不满足else if,但是还是会进入case 3的原因
c=(int)x;
}
switch(c)
{
case 1:
{
y=x-sin(x);
printf("case1 y=%.2f\n",y);
break;
}
case 2:
{
y=pow(2,x)+x;
printf("case2 y=%.2f\n",y);
break;
}
case 3:
{
y=sqrt(x*x+2*x+3);
printf("case3 y=%.2f\n",y);
break;
}
default:
printf("输入错误");
break;
}
//printf("y=%.2f\n",y);
return 0;
} |