Char 砍砍 2022-05-04 09:16 采纳率: 66.7%
浏览 58
已结题

我问一下为什么我的代码循环不了,只能循环一次就出来了

用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:
操作数1 运算符op 操作数2
计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。

要求如下:
(1)要求程序能进行浮点数的算术运算,操作数1和2用float类型定义,运算符op用字符型定义。
(2)要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空白符
输入提示信息:"Please enter the expression:\n"
输入数据格式:"%f %c%f"
输出数据格式:以加运算为例:"%f+ %f = %f\n"
(3)要求连续做多次算术运算,每次运算结束后,程序都给出提示:
Do you want to continue(Y/N or y/n)?
用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。
输入提示信息:"Do you want to continue(Y/N or y/n)?"
输入数据格式:" %c"
(4)如果输入错误的运算符,则输出"Unknown operator!\n",不结束程序运行,继续询问是否做下一次运算。
(5)如果除数为0,则输出"Division by zero!\n",不结束程序运行,继续询问是否做下一次运算。
(6)允许浮点数的误差在1e-7范围内。
提示:请直接拷贝粘贴题目中给定的格式字符串。

#include<stdio.h>
int main()
{
float a1,a2,b1;
char op,a;
a='y';

while(a=='y'||a=='Y')
{
    printf("Please enter the expression:\n");
    scanf("%f %c%f",&a1,&op,&a2);
    switch(op)
    {
        case'+':b1=a1+a2;printf("%f + %f = %f\n",a1,a2,b1);break;
        case'-':b1=a1-a2;printf("%f - %f = %f\n",a1,a2,b1);break;
        case'*':b1=a1*a2;printf("%f * %f = %f\n",a1,a2,b1);break;
        case'/':if(a2==0)
               {
                   printf("Division by zero!\n");
                   break;
               }
               b1=a1/a2;
               printf("%f / %f = %f\n",a1,a2,b1);
               break;
        default:printf("Unknown operator!\n");break;      
    }
    
    printf("Do you want to continue(Y/N or y/n)?");
    scanf("%c",&a);
}
return 0;

}



  • 写回答

2条回答 默认 最新

  • 关注

    scanf("%f %c%f",&a1,&op,&a2);后面加一句getchar();来接收回车符,否则会影响scanf("%c",&a)的读取。
    scanf("%c",&a);后面也加一句getchar();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • 有问必答小助手 2022-05-04 10:36
    关注
    您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
    PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月12日
  • 已采纳回答 5月4日
  • 创建了问题 5月4日

悬赏问题

  • ¥20 关于TRPD(波形特征)局部放电特征提取
  • ¥15 C语言快速排序函数纠错
  • ¥15 C#的一个应用程序书写
  • ¥65 页面调接口时加载卡住不响应
  • ¥35 用C语言解决编程问题
  • ¥15 unity硬件连接与使用
  • ¥15 鱼缸加热棒的数据分析或者实际案例也行
  • ¥15 postgresql11安装完成后,pgadmin无法启动
  • ¥15 (标签-无人机|关键词-Matlab代码)
  • ¥15 执行shell脚本提示参数太多