c语言编写计算器程序

#include<stdio.h>#include<stdlib.h>intmain(void){intnum1=0;intnum2=0;intresule=0;char... #include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1=0;
int num2=0;
int resule=0;
char sign;
printf("请输入两个要进行运算的数字,以逗号隔开:");
scanf("%d,%d",&num1,&num2);
printf("请输入运符号(+、-、*、/):");
scanf("%c",&sign);
if(sign!='+' && sign!='-' && sign!='*' && sign!='/')
{
printf("您输入的运算符有问题!\n");

system("PAUSE");
return 0;
}

switch(sign)
{
case '+':
resule=num1+num2;
break;
case '-':
resule=num1-num2;
break;
case '*':
resule=num1*num2;
break;
case '/':
if(0==num2)
{
printf("当您使用除法时,您输入的第二个数不能用0!\n");
system("PAUSE");
return 0;
}
else
{
resule=num1/num2;
}
}
printf("%d",resule);

system("PAUSE");
return 0;
}
如果定义先输入数字,函数运行不能提示输入运算符号,先输入副号可以避免,求解。。。为啥不能先输入数字。或者是缺少什么代码。。谢谢
展开
 我来答
折柳成萌
高粉答主

2020-06-09 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:5880万
展开全部

C语言编写计算器

  • 我们可以用printf和scanf函数输出结果和获取用户的输入。需要<stdio.h>头文件。scanf函数在读取数据的时候不需要再一行上输入每个数据,只要数据和数据之间留出空白就可以了。先声明两个变量number1和number2,operation变量用来存储运算符。用scanf函数获取这两个数字和运算符。分别用%lf %c %lf

    请点击输入图片描述

  • 然后需要检测输入是否是正确的,检查是不是+ - * / %,在这里要用到switch函数,用来看operation变量是否别传入了正确的值。

    switch(operation)

    {

    case '+':

    printf........

    }

    具体的运算我们只需要再case之后的printf语句中设定和输出就可以了。

    请点击输入图片描述

  • 由于除法和取余运算比较特殊,我们单独说明。除法的除数不能为零,所以除法需要检测除数是否为零,只需要用if else语句就可以,if(number2 == ),取余运算符对于浮点数没有意义,所以将浮点数转换为long类型,强制类型转换,if((long)number2 == 0)   else ,这样整个代码就完成了。

    请点击输入图片描述

  • 简单计算器的编辑并不难,但是要注意一些细节,除法的处理要注意除数不能为零的情况,而且取模运算要将两个操作数转化为整型,当然,作为真正的计算器,只实现这些功能是不够的,还需要更多的功能,不过有一个好的开始也不错。

  • 下面我们就运行一下这个程序吧。25*13的值和8%5的值。可以看到是我们期望的值。

    请点击输入图片描述

    请点击输入图片描述

tattackor
推荐于2016-04-13 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:859万
展开全部

1、既然是简单计算器,只需要实现加减乘除,同时每次支持两个操作数和一个操作符。
同时约定,操作数为整型,对于加减乘输出为整型,除法输入为浮点型即可。
2、例程:

#include <stdio.h>
int main()
{
    int a,b,r;
    float r_div;
    char op;
    scanf("%d",&a);//读入操作数a
    op = getchar();//读入运算符号
    scanf("%d",&b);//读入操作数b
    switch(op)//根据运算符号,进行对应的加减乘除运算。
    {
        case '+':
            r = a+b;//加法
            break;
        case '-':
            r = a-b;//减法
            break;
        case '*':
            r = a*b;//乘法
            break;
        case '/':
            r_div = a/(float)b;//除法
            break;
        default:
            printf("unknow operator\n");//未知操作符,属于输入错误。退出程序。
            return -1;
    }
    
    //根据操作符号,输入对应的运行结果。 
    if(op == '/')printf("%d%c%d=%f\n", a,op,b,r_div);
    else printf("%d%c%d=%d\n", a,op,b,r);
    
    return 0;
}

以上代码就实现了最简单的计算器,可以根据需要,在其上增加其它功能,比如连续计算,或者括号支持等。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无私且飒爽丶烤红薯s
推荐于2016-07-12
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1;
int num2;
int resule=0;
char sign;

setbuf(stdout,NULL);

printf("请输入两个要进行运算的数字,以逗号隔开:\n");
scanf("%d,%d",&num1,&num2);

sign=getchar();/*scanf从缓冲区中读取数,此句读取两个数之后的
回车符。否则回车符被下面的scanf语句读去赋给
sign */

printf("请输入运符号(+、-、*、/):\n");
scanf("%c",&sign);
if(sign!='+' && sign!='-' && sign!='*' && sign!='/'){
printf("您输入的运算符有问题!\n");
system("PAUSE");
return 0;
}

switch(sign){
case '+':resule=num1+num2;break;
case '-':resule=num1-num2;break;
case '*':resule=num1*num2;break;
case '/':
if(0==num2){
printf("当您使用除法时,您输入的第二个数不能用0!\n");
system("PAUSE");
return 0;
}
else
resule=num1/num2;
}

printf("%d",resule);
system("PAUSE");
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a9aac05dc
2011-03-20 · TA获得超过139个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:133万
展开全部
fflush(stdin)刷新缓存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式