• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

编译计算器,不知道为什么运行时总是出错?

本人初学,想用c语言大体编一个计算器,现目前编译如下,机器显示编译没有问题,但运行结果并未按照顺序来,总是出现48.000000,49.000000,想问一下哪里出错了?是哪里逻辑有问题还是?

#include #include int main(){    int c,flag;    float a,b,result;    printf("欢迎来到小黄鸡会计算的世界\n");    printf("小黄鸡最近学会了加减乘除,你可以来考考它\n");    printf("请输入第一个数字\n");    a=getchar();    printf("%f\n",a);    printf("请输入第二个数字\n");    b=getchar();    printf("%f\n",b);    printf("请选择你所需要的运算,如你要进行加法运算,请输入1;减法运算,请输入2;乘法运算,请输入3;除法运算,请输入4.\n");    flag=getchar();    switch(flag){        case 1: printf("结果是%f\n",result=a+b);        case 2: printf("结果是%f\n",result=a-b);        case 3: printf("结果是%f\n",result=a*b);        case 4: printf("结果是%f\n",result=a/b);        default:;    }    printf("小黄鸡很机智吧!\n");    return 0;}

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与3

把getchar换成scanf,也就是scanf("%f",&a);和scanf("%f",&b);以及scanf("%d",&flag);

使用道具 举报

include#includeintmain(){        intc,flag;        floata,b,result;        printf("欢迎来到小黄鸡会计算的世界\n");printf("小黄鸡最近学会了加减乘除,你可以来考考它\n");        printf("请依次输入第一、二个数字,和你所需要的运算符号(且我们规定加减乘除依次为1、2、3、4)\n");        scanf("%f",&a);        printf("%f\n",a);        scanf("%f",&b);        printf("%f\n",b);        scanf("%d",&flag);        switch(flag){                case1:printf("结果是%f\n",result=a+b);break;                case2:printf("结果是%f\n",result=a-b);break;                case3:printf("结果是%f\n",result=a*b);break;                case4:printf("结果是%f\n",result=a/b);break;                default:;        }        printf("小黄鸡很机智吧!\n");        return0;} 154004cxaz0ss8a8zff1fl.jpg
已经改成这样了,为什么还不行?

使用道具 举报

有 两个问题 getchar 你每次输入一个数据 你还要输入 一个 回车符号 回车符号 会被接受
  a=getchar();
  getchar();//添加这个就好
你 getchar 获得的是 数值的ascii 码值 0 对应的asc是 48 so 要用getchar的话 你应该 每个获开的值 剪掉48 依旧很麻烦 因为 getchar 似乎只能接受一个字符

使用道具 举报

发新帖

发布任务需求已有1031290位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!