c语言 简易加减计算器

设计一个能计算加减法的简单计算器 从键盘输入数字和运算符 输入等于号时结束计算并输出结果
输出例如下
$ ./a.out
10
+
15
-
5
=
20

下面是我自己编的

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(void)
{
    char num1[80],num2[80];
    char a;
    int j,k,s=0;
    gets(num1);
    j=atoi(num1);
    k=atoi(num2);
    while(j!=EOF){
        scanf("%c",&a);
        if(a== '+'){
            gets(num2);
            s=j+k;
            j=s;
        }
        if(a== '-'){
            gets(num2);
            s=j-k;
            j=s;
        }
        if(a== '='){
            break;
        }
    }
        printf("%d",s);
    return 0;
}

这次是关于结构体的题目 要求用到gets() atoi()等
求大神看看应该怎么改

现在可以编译执行了 但是输出值不对
1+1算成1
0+1算成0

c

2个回答

 if(scanf("%c",&a)== +)
->
scanf("%c",&a);
if (a == '+')
...

1.scanf 函数是有返回值的,它的返回值可以分成三种情况
1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);
如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);
如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。
3) EOF,这是在stdio.h里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。

ps:例如减号要用单引号引起来'-'

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
仅用c语言编写简易计算器

![图片说明](https://img-ask.csdn.net/upload/201608/29/1472464621_932498.png)求大神帮忙,不胜感激。

用C语言编写简单计算器

要求: (1)输入不含变量的数学表达式的中缀形式,可以接受的操作符包括+、-、*、/、%; (2)若表达式正确,则输出表达式的结果;若表达式非法,则输出错误信息; (3)同时输出堆栈的状态变化过程; (4)有合理的提示,每个功能可以设立菜单。根据提示,完成相应的功能要求。

求解答,用函数嵌套求简易的加减乘除计算器,哪错了?

总有一个错误,我找了几次都没解决。 ``` #include<stdio.h> void add(); void sub(); void sum(); void div(); void displayMenu(); void displayMenu() { printf("*****欢迎使用建议运算系统*****"); printf(" 1,加法 "); printf(" 2,减法 "); printf(" 3,乘法 "); printf(" 4,除法 "); printf(" 5,退出 "); printf("******************************"); } float add(float x,float y) { return x+y; } float sub(float x,float y) { return x-y; } float sum(float x,float y) { return x*y; } float div(float x,float y) { return x/y; } void main() { void displayMenu(); float m,n; int i; do { printf("请输入运行代码(1-4): "); scanf("%d",&i); switch(i) { case 1: printf("请输入两个数:"); scanf("%f %f",&m,&n); add(m,n); printf("x+y=%.2f",add(m,n));break; case 2: printf("请输入两个数:"); scanf("%f %f",&m,&n); sub(m,n); printf("x-y=%.2f",sub(m,n));break; case 3: printf("请输入两个数:"); scanf("%f %f",&m,&n); sum(m,n); printf("x*y=%.2f",sum(m,n));break; case 4: printf("请输入两个数:"); scanf("%f %f",&m,&n); div(m,n); printf("x/y=%.2f",div(m,n));break; case 5:break; } }while(i!=5); } ```

C语言编程:简易计算器

完成一个简易计算器,具有加减乘除开方,平方,立方和退出功能的计算器。按照程序运行效果图,完成计算器。 ![图片说明](https://img-ask.csdn.net/upload/202005/16/1589596761_479682.png)

用C51编写单片机程序实现10以内的加减乘除的简易计算器

运行80C51单片机C51语言编写程序,在51实验小系统上实现“十以内的简易计算器”,即:定义51实验小系统上的按键分别为0~9数字键、‘+’、“-”“*”“/”‘=’、退格等功能键;识别相关按键,按照十以内加法的正确逻辑在数码管上显示按键对应的信息,并完成加法运算,在数码管上显示加法结果。 实验内容两个层次—— 层次一:加法的结果在十以内; 层次二:两个加数分别在十以内。

怎么用c语言编写一个简单的计算器?

输入连续的乘除混合运算式子,程序根据输入式子进行计算,输出正确计算结果(要求式子不能有括号,每个数均为个位数,例如输入4*5/2,输出10) 解答要求 根据给出部分代码写出完整代码;对代码进行详细注释;

制作简单计算器实现数字之间的加减乘除,运行项目后给予用户一定的操作提示,加减乘除分别以不同的函数进行定义封装,在主函数当中进行加减乘除方法的调用进行运算,最终将得到的结果输出到控制台

C语言制作简单计算器 实现数字之间的加减乘除,运行项目后给予用户一定的操作提示(带上个人信息, 如:欢迎使用XX开发的计算器),加减乘除分别以不同的函数进行定义封装,在主函数当中进行加减乘除方法的调用进行运算,最终将得到的结果输出到控制台,复杂的代码加以注释

c语言数据结构与算法作业:简易计算器

利用表达式原转后缀、后缀求值算法编写计算器程序。 要求:允许用户输入表达式,然后计算并输出结果。 表达式中有加减乘除运算符、括号。 操作数可为浮点型 求大佬帮我看看哪里出问题了 ```#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct snode { char data; struct snode *next; }Snode,*LinkStack; typedef struct std { float data; struct std *nexts; }STD,*ST; void InitStack(LinkStack *LS); int Push(LinkStack *LS,char e); int Pop(LinkStack *LS); void InitStack1(ST *Ls); void Pushs(ST *s,float e); float Pops(ST *Ls); void Transformation(char a[100],char suff[100]); int prior(char a); int isdigit(char e); int GetTop(LinkStack s); int Calculate(char b[100]); void main() { char a[100],suff[100]; printf("请输入多项式(输入英文括号):"); gets(a); Transformation(a,suff); printf("原表达式转后缀式为(以#结尾):"); puts(suff); Calculate(suff); } void InitStack(LinkStack *LS) { *LS=NULL; } void InitStack1(ST *Ls) { *Ls=NULL; } int Push(LinkStack *LS,char e) { LinkStack p=(LinkStack)malloc(sizeof(snode)); p->data=e; p->next=*LS; *LS=p; return 1; } void Pushs(ST *s,float e) { ST p=(ST)malloc(sizeof(STD)); p->data=e; p->nexts=*s; *s=p; } int Pop(LinkStack *LS) { char e; LinkStack p=*LS; if(*LS==NULL) return 0; *LS=(*LS)->next; e=p->data; free(p); return e; } float Pops(ST *Ls) { float i; ST p=*Ls; if(*Ls==NULL)return 0; *Ls=(*Ls)->nexts; i=p->data; free(p); return i; } int prior(char a) { if(a=='*'||a=='/') return 4; else if(a=='+'||a=='-') return 3; else if(a=='(') return 2; else if(a=='#') return 1; else return 0; } int GetTop(LinkStack s) { char e; if(s==NULL) return 0; e=s->data; return e; } int isdigit(char e) { if(e>='0'&&e<='9') return 1; if(e=='.') return 1; return 0; } void Transformation(char a[100],char suff[100]) { int i=0,j=0,length=0; char ch; LinkStack s; InitStack(&s); Push(&s,'#'); length=strlen(a); a[length]='#'; a[length+1]='\0'; while(a[i]!='\0') { if(isdigit(a[i])) suff[j++]=a[i]; else { switch(a[i]) { case'(':Push(&s,a[i]);break; case')':ch=Pop(&s); while(ch!='(') {suff[j++]=ch; ch=Pop(&s); } break; default: ch=GetTop(s); while(prior(ch)>=prior(a[i])) { suff[j++]=ch; ch=Pop(&s); ch=GetTop(s); } if(a[i]!='#')Push(&s,a[i]); } suff[j++]=32; } i++; } suff[j]='\0'; } int Calculate(char b[100]) { ST s; float v=0,a=0; int i=0; float j=0,x1=0,x2=0; InitStack1(&s); while(b[i]!='#') { switch(b[i]) { case' ':break; case'+':x2=Pops(&s); x1=Pops(&s); Pushs(&s,x1+x2); break; case'-':x2=Pops(&s); x1=Pops(&s); Pushs(&s,x1-x2); break; case'*':x2=Pops(&s); x1=Pops(&s); Pushs(&s,x1*x2); break; case'/':x2=Pops(&s); x1=Pops(&s); if(x2!=0) Pushs(&s,x1-x2); else { printf("错误,分母为0。\n"); return 0;} break; default:if(b[i]<='9'&&b[i]>='0') { v=0; v=b[i]-48; i++; while(b[i]<='9'&&b[i]>='0') { v=v*10+(b[i]-48); i++; } if(b[i]=='.') { i++; j=0.1; while(b[i]<='9'&&b[i]>='0') { a=a+j*(b[i]-48); j=j*j; i++; } } } v=v+a; Pushs(&s,v); break; } i++; } printf("结果(保留两位小数)=%.2f\n",Pops(&s)); return 1; } ``` ```

用c++写一个计算器,要求有加减乘除括号,这5个功能

我自己写了一个,无奈各种异常终止程序,求问各路大侠支招,有没有什么思路…谢谢了先

编写程序包(计算器),其中有四个函数分别实现两个数的加减乘除。

麻烦大神看下这个该怎么做,只有一个的话,return两数相加,这个加减乘除都要有,就不知道怎么办了

用C做一个简易计算器,这个后面的函数要怎么写?

#include <stdio.h> typedef struct { float operand1, operand2; char oprator; } bexpression; float compute1(bexpression expr); int main(){ bexpression e; char repeat = 'y'; do { printf("Enter expression (op1 op2 op) :\n"); scanf("%f %f %c", &e.operand1, &e.operand2, &e.oprator); printf("compute1 = %f\n",compute1(e)); printf("compute2 = %f\n",compute2(&e)); getchar(); printf("\nContinue ('y' or 'n') :\n"); scanf("%c", &repeat); }while (repeat == 'y'); return 0; } float compute1(bexpression expr){ } ``` ```

设计一个计算器用户界面

设计一个计算器用户界面—— 不知道怎么布局,改了很多遍都不成功 图一是标准的,图二是我的结果,下面是我打的代码: import java.awt.*; import javax.swing.*; public class Calculator extends JFrame{ public Calculator() { JPanel p1 = new JPanel(); //frame.setLayout(new FlowLayout()); p1.setLayout(new GridLayout(4,1)); p1.add(new JButton("MC")); p1.add(new JButton("MR")); p1.add(new JButton("MS")); p1.add(new JButton("M+")); JPanel p2 = new JPanel(); p2.setLayout(new GridLayout(4,3)); for(int i = 1; i <= 9; i++){ p2.add(new JButton("" + i + " ")); } p2.add(new JButton("0")); p2.add(new JButton("+/-")); p2.add(new JButton("-")); JPanel p3 = new JPanel(); p3.setLayout(new GridLayout(4,2)); p3.add(new JButton("/")); p3.add(new JButton("sqrt")); p3.add(new JButton("*")); p3.add(new JButton("%")); p3.add(new JButton("-")); p3.add(new JButton("1/x")); p3.add(new JButton("+")); p3.add(new JButton("=")); JPanel p4 = new JPanel(new BorderLayout()); p4.setLayout(new GridLayout(1,4)); p4.add(new JLabel(" ")); p4.add(new JButton("Backspace")); p4.add(new JButton("CE")); p4.add(new JButton("C")); JPanel p5 = new JPanel(new BorderLayout()); p5.add(new JTextField(" "),BorderLayout.NORTH); add(p5,BorderLayout.EAST); p5.add(p1,BorderLayout.WEST); p5.add(p2,BorderLayout.CENTER); p5.add(p3,BorderLayout.EAST); p5.add(p4,BorderLayout.NORTH); } public static void main(String[] args) { Calculator frame = new Calculator(); frame.setTitle("标准计算器"); frame.setSize(500, 400); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ![图一](https://img-ask.csdn.net/upload/201505/16/1431747601_198532.jpg) ![图二](https://img-ask.csdn.net/upload/201505/16/1431747622_901005.jpg)

编写计算器时为什么显示输入字符串的格式不正确?

# 用的mfc2010窗体编写的简易计算器 加减乘除都没问题,做到了平方和开方时总是报错运行不了...从加法开始的代码如下: private void button11_Click(object sender, EventArgs e) { ysfs = 1; temp1 = Convert.ToDouble(textBox1.Text); textBox2.Text = "+"; textBox1.Text = " "; } //+ private void button12_Click(object sender, EventArgs e) { ysfs = 2; temp1 = Convert.ToDouble(textBox1.Text); textBox2.Text = "-"; textBox1.Text = " "; } //- private void button13_Click(object sender, EventArgs e) { ysfs = 3; temp1 = Convert.ToDouble(textBox1.Text); textBox2.Text = "*"; textBox1.Text = " "; } //* private void button14_Click(object sender, EventArgs e) { ysfs = 4; temp1 = Convert.ToDouble(textBox1.Text); textBox2.Text = "/"; textBox1.Text = " "; } /// private void button17_Click(object sender, EventArgs e) { ysfs = 5; temp1 = Convert.ToDouble(textBox1.Text); textBox2.Text = "²"; textBox1.Text = " "; } //平方 private void button20_Click(object sender, EventArgs e) { double temp2 = Convert.ToDouble(textBox1.Text); switch (ysfs) { case 1: textBox1.Text = (temp1 + temp2).ToString(); break; case 2: textBox1.Text = (temp1 - temp2).ToString(); break; case 3: textBox1.Text = (temp1 * temp2).ToString(); break; case 4: textBox1.Text = (temp1 / temp2).ToString(); break; case 5: textBox1.Text = (Math.Pow(temp1, 2)).ToString(); break; case 6: textBox1.Text = Math.Sqrt(temp1).ToString(); break; } }//等于![图片说明](https://img-ask.csdn.net/upload/201812/28/1545994424_745007.png)

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

立方体线框模型透视投影 (计算机图形学实验)

计算机图形学实验 立方体线框模型透视投影 的可执行文件,亲测可运行,若需报告可以联系我,期待和各位交流

2019 AI开发者大会

2019 AI开发者大会

组成原理课程设计(实现机器数的真值还原等功能)

实现机器数的真值还原(定点小数)、定点小数的单符号位补码加减运算、定点小数的补码乘法运算和浮点数的加减运算。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

软件测试2小时入门

软件测试2小时入门

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

计算机图形学-球的光照模型课程设计

计算机图形学-球的光照模型,有代码完美运行,有课程设计书

Linux常用命令大全(非常全!!!)

Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 d...

因为看了这些书,我大二就拿了华为Offer

四年了,四年,你知道大学这四年我怎么过的么?

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

fakeLocation13.5.1.zip

fakeLocation13.5.1 虚拟定位 ios13.5.1的最新驱动下载,iPhone/iPad免越狱虚拟定位工具Location-cleaned驱动已更新

UnityLicence

UnityLicence

Python可以这样学(第一季:Python内功修炼)

Python可以这样学(第一季:Python内功修炼)

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

【数据结构与算法综合实验】欢乐连连看(C++ & MFC)案例

这是武汉理工大学计算机学院数据结构与算法综合实验课程的第三次项目:欢乐连连看(C++ & MFC)迭代开发代码。运行环境:VS2017。已经实现功能:开始游戏、消子、判断胜负、提示、重排、计时、帮助。

php+mysql学生成绩管理系统

学生成绩管理系统,分三个模块:学生,教师和管理员。 管理员模块:负责学生、老师信息的增删改;发布课程信息的增删改,以便让学生选课;审核老师提交的学生成绩并且打印成绩存档;按照课号查询每个课号的学生成绩

多功能数字钟.zip

利用数字电子计数知识设计并制作的数字电子钟(含multisim仿真),该数字钟具有显示星期、24小时制时间、闹铃、整点报时、时间校准功能

推荐24个国外黄色网站欣赏

在中国清朝,明黄色的衣服只有皇子才有资格穿,慢慢的黄色在中国就成了高贵的颜色。在人们的色彩印象中,黄色也表现为暂停。所以当你的网页设计采用黄色的时候,会让人们在你的网页前停留。 黄色,就像橙色和红色,黄色也是一个暖色。它有大自然、阳光、春天的涵义,而且通常被认为是一个快乐和有希望的色彩。黄色是所有色相中最能发光的颜色,给人轻快,透明,辉煌,充满希望的色彩印象。 黄色是一个高可见的色...

u-boot-2015.07.tar.bz2

uboot-2015-07最新代码,喜欢的朋友请拿去

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

学生成绩管理系统(PHP + MYSQL)

做的是数据库课程设计,使用的php + MySQL,本来是黄金搭配也就没啥说的,推荐使用wamp服务器,里面有详细的使用说明,带有界面的啊!呵呵 不行的话,可以给我留言!

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

C++语言基础视频教程

C++语言基础视频教程

玩转Python-Python3基础入门

玩转Python-Python3基础入门

2019校招硬件乐鑫+比特大陆笔试题

楼主水硕一枚,参加了2019年的秋招。自己总结了下乐鑫的笔试题目(现场笔试)以及网上考试的比特大陆的题目

成年人用得到的6款资源网站!各个都是宝藏,绝对让你大饱眼福!

不管是学习还是工作,我们都需要一些资源帮助我们有效地解决实际问题。 很多人找资源只知道上百度,但是你们知道吗,有的资源是百度也搜索不出来的,那么今天小编就给大家介绍几款好用的资源网站,大家赶紧收入囊中吧! 1.网盘007 https://wangpan007.com/ 一款全能的资源搜索网站!只需要输入关键字,就能获得你想要的视频、音乐、压缩包等各种资源,网上...

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

Python数据挖掘简易入门

Python数据挖掘简易入门

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

web网页制作期末大作业

分享思维,改变世界. web网页制作,期末大作业. 所用技术:html css javascript 分享所学所得

相关热词 c# cad插入影像 c#设计思想 c#正则表达式 转换 c#form复制 c#写web c# 柱形图 c# wcf 服务库 c#应用程序管理器 c#数组如何赋值给数组 c#序列化应用目的博客园
立即提问