#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{
float x, y;
int tag;
scanf( "%f", &x );
int t=0;
if(x>=(-10)&&x<10)
t=1;
else if(x>=10&&x<20)
t=2;
else if(x>=20&&x<100)
t=3;
else
;
printf("%d\n",t);
switch (t)
{
case '1': y=sin(x+3.0);break;
case '2': y=cos(x+8.0);break;
case '3': y=log(x*4);break;
default:printf("No define!\n");
}
if (t!=0)
{
printf("%.5f\n",y);
}
getch();
return 0;
case '1': y=sin(x+3.0);break;
case '2': y=cos(x+8.0);break;
case '3': y=log(x*4);break;
// case 后面应该是整形1,2,3 而不是char型 要知道 '1' != 1
// y 报警告是因为y未初始化,是一个未定义的值
把你的case 的'1'、'2'、'3'改成纯数字1,2,3
你的t是整型,那么你的case 对应的应该也是整型,但是你现在的'1'定义的是字符型,类型不匹配,就输出default的内容了
报警y未初始化不用管,只要你的case条件没错,y就会赋值,只是有些编译器警告而已
就运行结果来看这几个句子好像没发挥作用???