首先,scanf(\"%f%c%f\",
scanf(\"%c\",
2chars;
s=getchar();
字符型数组的输入方式有chars[];
gets(s);
而用get来输入单个字符是不合法的。
再次,if(get(=))
printf(\"%f\",s);break;这两句有错误。
break的功能是:用于嵌套循环时,跳出包含它的最内层循环(for循环或switch...case循环)。
在这个程序的if语句中,break是多余的,没啥用。
最后,switch...case语句缺少default分支。
程序可更改为:
#includestdio.h
intmain()
{
floata,b,s;
chart,w;
printf(\"欢迎使用!\\n\");
scanf(\"%f%c%f\",
switch(t)
{
case\'\':s=ab;break;
case\'-\':s=a-b;break;
case\'*\':s=a*b;break;
case\'/\':s=a/b;break;
default:
break;
}
w=getchar();
if(\'=\'==w)
{
printf(\"%f\",s);
}
return0;
}
也可以更改为:
#includestdio.h
intmain()
{
floata,b,s;
chart,w;
printf(\"欢迎使用!\\n\");
scanf(\"%f%c%f\",
switch(t)
{
case\'\':
s=ab;
break;
case\'-\':
s=a-b;
break;
case\'*\':
s=a*b;
break;
case\'/\':
s=a/b;
break;
default:
break;
}
scanf(\"%c\",
if(\'=\'==w)
{
printf(\"%f\",s);
}
return0;
}
这样,当你在键盘上敲入23=时,就会有结果5.000000输出。 |