#include <stdio.h>
int main()
{
double a,b,c,d;
char e;
do{
scanf("%c",&e);
scanf("%lf % % %",&a,&b,&c,&d);
switch(e){
case '+':printf("%f ",(a1.0/b)+(c1.0/d)),printf("%f\n",a+b+c+d);break;
case '-':printf("%f ",(a1.0/b)-(c1.0/d)),printf("%f\n",a-b-c-d);break;
case '':printf("%f ",(a1.0/b)(c1.0/d)),printf("%f\n",abcd);break;
case '/':printf("%f ",(a1.0/b)/(c*1.0/d)),printf("%f\n",a/b/c/d);break;
case '0':break;
default:break;
}
}while(e!=0);
return 0;
}
我不理解,为什么在+-先输入任何一个字符,第二次再次输入就变成了执行default语句
(不让写重复字符,所以%lf省略)
switch case语句,多次输入输出字符运算
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qzjhjxj 2022-09-30 20:44关注
残留字符保留在缓冲区里,下次当作字符读入了,修改如下,供参考:
#include <stdio.h> int main() { double a,b,c,d; char e; do{ scanf("%c",&e); getchar(); //修改 scanf("%lf %lf %lf %lf",&a,&b,&c,&d); getchar(); //修改 switch(e){ case '+': printf("%f ",(a*1.0/b)+(c*1.0/d)); printf("%f\n",a+b+c+d); break; case '-': printf("%f ",(a*1.0/b)-(c*1.0/d)); printf("%f\n",a-b-c-d); break; case '*': printf("%f ",(a*1.0/b)*(c*1.0/d)); printf("%f\n",a*b*c*d); break; case '/': printf("%f ",(a*1.0/b)/(c*1.0/d)); printf("%f\n",a/b/c/d); break; case '0':break; default:break; } }while(e != '0'); //(e != 0) 修改 return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 远程桌面文档内容复制粘贴,格式会变化
- ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
- ¥15 网络设备配置与管理这个该怎么弄
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题