#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无用
悬赏问题
- ¥100 有偿求易语言word文档取doc和docx页数方法或模块
- ¥15 找能接spark如图片的,可议价
- ¥15 关于#单片机#的问题,请各位专家解答!
- ¥15 博通raid 的写入速度很高也很低
- ¥15 目标计数模型训练过程中的问题
- ¥100 Acess连接SQL 数据库后 不能用中文筛选
- ¥15 用友U9Cloud的webapi
- ¥20 电脑拓展屏桌面被莫名遮挡
- ¥20 ensp,用局域网解决
- ¥15 Python语言实验