用C语言编写一个加减乘除计算器,不知道哪儿出错了。请各位帮帮忙!谢谢

[复制链接]
查看11 | 回复1 | 2011-5-18 11:23:06 | 显示全部楼层 |阅读模式
#includestdio.h
intmain()
{
floata,b,s;
chart;
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;
}
if(get(=))
printf(\"%f\",s);break;
}
return0;
}
回复

使用道具 举报

千问 | 2011-5-18 11:23:06 | 显示全部楼层
首先,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输出。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行