精华内容
下载资源
问答
  • 主要为大家详细介绍了C语言实现简单计算器程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • C语言简单计算器

    千次阅读 2020-02-24 17:05:06
    简单计算器,实现简单的加减乘除功能,选择对应的运算符输出运算符对应的编号,然后输入我们要计算的两个数,程序会给出计算结果。 效果演示 简单计算器代码 /* 简单计算器 name:zsh */ #include <stdio.h>...

    用C语言实现简单的计算器功能。

    简单计算器,实现简单的加减乘除功能,选择对应的运算符输出运算符对应的编号,然后输入我们要计算的两个数,程序会给出计算结果。

    效果演示

    在这里插入图片描述

    简单计算器代码

    /*
    简单计算器
    name:zsh 
    */ 
    #include <stdio.h>	//简单计算器 
    
    void menu()	//运算符显示界面 
    {
    	printf("--------------------------------------------\n");
    
    printf("请输入你的选择\n");
    
    printf("1. + \n"); 
    
    printf("2. - \n"); 
    
    printf("3. * \n"); 
    
    printf("4. / \n"); 
    
    
    printf("--------------------------------------------\n");
    }
    
    
    int main()
    {
    	int i = 0;
    	
    	int j = 0;
    	
    	int num = 0;	//存放计算结果
    	 
    	int select = 0;	//存放选择的运算符 
    	
    	do
    	{
    		menu();	//打印运算符显示界面 
    		
    		scanf("%d", &select);	//输入运算符编号 
    		
    		printf("请输入计算值");
    		
    		scanf("%d%d", &i, &j);	//输入运算数值 
    		
    		switch (select)
    		{
    			case 1:
    				printf("%d+%d=%d\n", i, j, num=i+j);	//加法运算 
    				break;
    				
    			case 2:
    				printf("%d-%d=%d\n", i, j, num=i-j);	//减法运算 
    				break;
    				
    			case 3:
    				printf("%d*%d=%d\n", i, j, num=i*j);	//乘法运算 
    				break;
    				
    			case 4:
    				printf("%d/%d=%d\n", i, j, num=i/j);	//除法运算 
    				break;
    				
    			default:
    				printf("输入有误请重新选择!"); 
    				break; 
    			
    		}
    		
    	} while(select);
    	
    	return 0;
    	
    }
    
    展开全文
  • 这是用C语言写的一个简单计算器程序代码 expression,term,factor的划分,使得函数递归的结构十分清晰,大家可以下载学习
  • 大一课程设计简单计算器的实现,包含程序代码和注释,报告包含详细的实验目的,设计步骤,设计流程图,结果运行图,心得体会等等;欢迎下载
  • 编译选项 在Visual Studio代码中:Ctrl + Shift + B 或者 在终端中:gcc main.c -o程序 键入main以启动计算器
  • 【欢迎下载】数据结构C语言编程作业 简单计算器 C语言程序 可运行
  • C语言中switch 的应用 程序思想 C++编程灵活简单我们只要有自己的对设计目标的整体思想其余的属于添砖 加瓦比如 此次计算器的编程设计可能用到 switch 可能会达到简单操作领会直白等优 点可能会用到哪几种数据类型...
  • 完成一个简单计算器,要求实现最基本的运算操作,当用户输入一个算式后,计算器显示计算结果,同时屏幕项部显示:continue? 如果用户此时按Y键,则继续输入下一个算式,否则,程序终止。 实现要求: 由主函数获取...
  • 本文为大家分享了C语言实现简单计算器功能的具体方法,供大家参考,具体内容如下 这几天一直上控制语句,在学完if、switch和循环语句后,为了巩固所学知识点,想给学生出一道简单的计算器程序。题目如下: 通过所学...
  • C语言计算器代码

    2008-06-18 11:09:12
    这个程序只提供课程设计,没有界面.简单,易懂!
  • 这是一个表达式计算器。包含将表达式转化为逆波兰(RPN)表示法,求值的功能。 如果输入非法,程序能够用简洁清晰的方式指出出错的位置。 文档还包含了如何处理调用参数、如何创建makefile的示范。 这个程序完全共享,...
  • 一个用C语言编写的简单计算器程序 四则运算 及求最大公约数 最大公倍数 倒数 求开根及幂运算等
  • 首先确定数据类型,作为计算器来讲的话data1和data2自然就要设置为双精度的double型,然后运算符op设置为字符型,然后运算结果的话设置为浮点型或整型输出的话在遇到其他数据时容易结果显示很复杂,所以设置为了实数的...

    首先确定数据类型,作为计算器来讲的话data1和data2自然就要设置为双精度的double型,然后运算符op设置为字符型,然后运算结果的话设置为浮点型或整型输出的话在遇到其他数据时容易结果显示很复杂,所以设置为了实数的形式输出,然后利用分支结构(switch–case)来作为整体的框架。
    代码如下:

    #include<stdio.h>
    int main()
    {
    double data1,data2,result;
    char op;
    printf("请按照:5+3,这样的实例输入数据和运算符:");
    scanf("%lf%c%lf",&data1,&op,&data2);
    printf("计算结果为:");
    switch(op)
    {
    case'+':result = data1 + data2;printf("%g\n",result);break;
    case'-':result = data1 - data2;printf("%g\n",result);break;
    case'*':result = data1 * data2;printf("%g\n",result);break;
    case'/':result = data1 / data2;printf("%g\n",result);break;
    default:printf("输入了错误的运算符!\n");
    }
    return 0;
    }
    
    

    对我的博客或其他方面有任何见解或问题的话都可以私信我
    或者联系本人QQ:3128909688
    微信:DreamHerome
    欢迎致电

    展开全文
  • 大一学了C语言老师肯定会要求你们做一个这个课后作业!所以,先收藏是关键~ 本文案例用C语言做一个简单的计算器,进行加、减、乘、除操作。本程序涉及的所有数学...** 设计目的:简单计算器,计算形如10*(20.2-30.

    大一学了C语言老师肯定会要求你们做一个这个课后作业!所以,先收藏是关键~

    本文案例用C语言做一个简单的计算器,进行加、减、乘、除操作。本程序涉及的所有数学知识都很简单,但输入过程会增加复杂性。都是C语言很基础的东西(输入输出),学了之后能写出一个完整的C语言程序。适合涉及C语言的基本语法,与输入与输出。适合初学者学习。

    代码如下:

    /*===============================================*\
    
    ** 设计目的:简单计算器,计算形如10*(20.2-30.6)+5.0/2的表达式值
    
    ** 简要原理:中缀式转逆波兰式(后缀式)
    
    ** IDE:Dev-Cpp 4.9.9.2
    
    ** 注意事项:括号必须是英文状态的
    
    ** 时间: 2020-9-05
    
    \*===============================================*/
    
    #include <stdio.h>
    
    #include <string.h>
    
    #include <stdlib.h>
    
    #define maxn 1000
    
    char buf[maxn], str[maxn], signStack[maxn], ch[2];
    
    int len, id, idSign, idAns, i, n;
    
    double ans[maxn];
    
    void checkSign(char sign){
    
    if(sign == '(') signStack[idSign++] = sign;
    
    else if(sign == '*' || sign == '/'){
    
    while(idSign && (signStack[idSign-1] == '*' || signStack[idSign-1] == '/'))
    
    str[id++] = signStack[--idSign];
    
    signStack[idSign++] = sign;
    
    }else if(sign == ')'){
    
    while(signStack[idSign-1] != '(') str[id++] = signStack[--idSign];
    
    --idSign;
    
    }else{
    
    while(idSign && signStack[idSign-1] != '(') str[id++] = signStack[--idSign];
    
    signStack[idSign++] = sign;
    
    }
    
    str[id++] = ' ';
    
    }
    
    int check(double a, char sign){
    
    if(a == 0 && sign == '/'){
    
    printf("除数不能为0!,程序结束。\n");
    
    system("pause");
    
    exit(EXIT_FAILURE);
    
    }
    
    return 1;
    
    }
    
    double cal(double a, double b, char sign){
    
    switch(sign){
    
    case '+': return a + b;
    
    case '-': return a - b;
    
    case '*': return a * b;
    
    case '/': return a / b;
    
    }
    
    }
    
    int main(){
    
    printf("\t\t\t\t简单计算器\n\n");
    
    printf("\t\t  ======================================\n");
    
    printf("\t\t  ||  支持+ - * / ( ) 等符号和负数输入  ||\n");
    
    printf("\t\t  ======================================\n");
    
    printf("\t\t\t\t\t\t\n");
    
    printf("\t\t\t\t\t\t完成时间:2020年9月5日\n");
    
    printf("\t\t\t\t\t\t学习Q群:757874045\n");
    
    printf("请输入一个表达式,如 -10*(20.2-30.6)+5.0/2\n以回车结束:\n");
    
    do{
    
    gets(buf); id = idSign = idAns = 0;
    
    if((len = strlen(buf)) == 0) continue;
    
    int flag = 0; //这个是用来判断'-'字符是负号还是减号的。1表示数字,0表示 +*/(
    
    /*判断原理:如果第一次读取就碰到-,那么一定是负号,若最近一次读取是+*-/(那么
    
    也一定是负号,如果是右括号或数字那么是减号*/
    
    for(i = 0; i < len; ++i){
    
    if(buf[i] == ' ') continue;
    
    if(buf[i] >= '0' && buf[i] <= '9' || buf[i] == '.' || buf[i] == '-' && !flag){
    
    str[id++] = buf[i]; flag = 1;
    
    }
    
    else {
    
    str[id++] = ' '; checkSign(buf[i]);
    
    if(buf[i] != ')') flag = 0;
    
    else flag = 1;
    
    }
    
    }
    
    while(idSign) str[id++] = signStack[--idSign];
    
    for(i = 0, n = 0; i < id; ++i){
    
    if(str[i] == ' ') continue;
    
    /*用增加空格的方式判断‘-’字符是负号还是减号,若‘-’后面挨着数字或小数点,那么一定是负号*/
    
    if(str[i] >= '0' && str[i] <= '9' || str[i] == '.' || str[i] == '-'
    
    && (str[i+1] >= '0' && str[i+1] <= '9' || str[i+1] == '.')){
    
    sscanf(str + i, "%lf%n", &ans[idAns++], &n);
    
    i += n - 1;  continue;
    
    }else if(check(ans[idAns-1], str[i])){
    
    ans[idAns-2] = cal(ans[idAns-2], ans[idAns-1], str[i]);
    
    --idAns;
    
    }
    
    }
    
    printf("结果是 %.2lf\n", ans[0]);
    
    printf("输入Y 继续, N 退出: ");
    
    scanf("%s", ch);
    
    }while(ch[0] == 'Y' || ch[0] == 'y');
    
    printf("感谢您的使用!再见\n");
    
    system("pause");
    
    return 0;
    
    }

    迟早你会使用到的一个C语言案例,如果你是刚刚开学的小学弟,还没有开始学习C语言,那么你可以收藏一下!如果你是已经开始学了C语言的小伙伴,那么就希望本案例能够对你有帮助~

    自学C/C++编程难度很大,如果你想更快提升自己的编程能力和编写项目的水平,欢迎一起共同成长!

    C语言C++编程学习交流圈子,【点击进入】微信公众号:C语言编程学习基地

    分享(源码、项目实战视频、项目笔记,基础入门教程)

    欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

    展开全文
  • 基于51单片机的计算器 C语言程序

    千次阅读 2011-07-07 13:27:20
    对于 电子这个专业,虽不打算以后吃这晚饭,但是期末作业还是得做——“一个简单计算器程序”。由于时间,一直没顾得上整理,今天就把它贴这儿给大家分享,也全当做是对自己这美好青春时光的一点儿记忆吧......嘻...
     对于 电子这个专业,虽不打算以后吃这晚饭,但是期末作业还是得做——“一个简单的计算器程序”。由于时间,一直没顾得上整理,今天就把它贴这儿给大家分享,也全当做是对自己这美好青春时光的一点儿记忆吧......嘻嘻嘻1
     
    程序代码如下:

    #include <reg51.h>
    #define uchar unsigned char
    #define uint  unsigned int
    bit  NumSem;//前后操作数的互斥信号量
    bit  equ;//等号判断
    bit  clr;//清零标志
    bit  add;//加标志
    bit  dec;//减标志
    bit  mul;//乘标志
    bit  div;//除标志
    bit  op;//算术符号标志
    uchar  KeyNum;//键值
    uint  result;//计算结果
    uint  PreNum,LatNum;//计算的两个操作数前操作数,后操作数
    uchar  KeyPos;
    uchar  DisLed[]={0xC0,0xF9,0xA4,0xB0,0x99,//LED数码七段表
                     0x92,0x82,0xF8,0x80,0x90};
    uchar  NumBufe[]={0,0,0,0};
    //sbit P10=P1^0;
    //sbit P11=P1^1;
    //sbit P12=P1^2;
    //sbit P13=P1^3;
    void  T0Intal(void);//定时器0初始化程序
    void DisPlay(void);//显示程序
    void ResultNum(void);//计算器运算结果
    void Clear(void);//清零程序
    void Delay_510(void);//延时510us程序用汇编编写
    void ChangeNum(uchar *p,uchar nCount);//NumBufe[]移位程序
    void main(void)
    {
       T0Intal();
       while(1)
       {
         if(NumSem)
         {
            PreNum=NumBufe[3]*1000+NumBufe[2]*100+NumBufe[1]*10+NumBufe[0];
      NumBufe[4]=0;
         NumSem=0;
         }
      if(op)
      {
        if(PreNum!=0)
        {
           if(NumBufe[4]==0)
        {
         NumSem=1;
        }
              if(equ)
        {
           if(NumBufe[4]!=0)
        {
           LatNum=NumBufe[3]*1000+NumBufe[2]*100+NumBufe[1]*10+NumBufe[0];
        //DisLed[]=0;
        KeyPos=0;
        }
          ResultNum();//计算器结果计算
                //DisPlay();//显示计算结果
        }
       
        }
        else Clear();
     
      }
        if(clr)
     {
       Clear();
        }
     DisPlay();//显示计算结果
       }

    }
    void  T0Intal(void)
    {
       TMOD=0x01;
       TH0=(65536-20000)/256;
       TL0=(65536-20000)%256;
       EA=1;
       ET0=1;
       TR0=1;
    }
    void DisPlay(void)
    {
       //uchar one,two,three,four;
       //one=result/1000;
       P2=DisLed[NumBufe[3]];
       P0=0xFE;
       Delay_510();
       //two=(result-one*1000)/100;
       P2=DisLed[NumBufe[2]];
       P0=0xFD;
       Delay_510();
       //three=(result-one*1000-two*100)/10;
       P2=DisLed[NumBufe[1]];
       P0=0xFB;
       Delay_510();
       //four=(result-one*1000-two*100)%10;
       P2=DisLed[NumBufe[0]];
       P0=0xF7;
       Delay_510();

    }
    void ResultNum(void)
    {
       if(op)
       {
         if(add)
      {
       result=PreNum+LatNum;
      }
         if(dec)
      {
       result=PreNum-LatNum;
      }
      if(mul)
      {
       result=PreNum*LatNum;
      }
      if(div)
      {
       result=PreNum/LatNum;
      }
       }
       //return result;
       //unsigned char
       //uchar one,two,three;
       //one=result/1000;
       NumBufe[3]=result/1000;
       NumBufe[2]=(result-NumBufe[3]*1000)/100;
       //NumBufe[2]=two;
       NumBufe[1]=(result-NumBufe[3]*1000-NumBufe[2]*100)/10;
       //NumBufe[1]=three;
       NumBufe[0]=(result-NumBufe[3]*1000-NumBufe[2]*100)%10;
    }
    void Clear(void)
    {
     // if(Clear)
      //{
         NumBufe[0]=0;
      NumBufe[1]=0;
      NumBufe[2]=0;
      NumBufe[3]=0;
         PreNum=0;
      LatNum=0;
      result=0;
      NumSem=0;
      KeyPos=0;
      clr=0;
      equ=0;
         add=0;
      dec=0;
      mul=0;
      div=0;
      op=0;
     // }
    }
    void  ChangeNum(uchar *p,uchar nCount)
    {
      if(nCount<4)
      {
        uchar ncount;
       ncount=nCount;
       while(ncount>0)
        {
          *(p+nCount)=*(p+nCount-1);
       ncount--;
         }
      }
    }
    void Delay_510(void)//延时510微秒
    {
    #pragma asm
     MOV R0,#7DH
     MOV R1,#02H
     TSR1:
     DJNZ R0,TSR1
     MOV R0,#7DH
     DJNZ R1,TSR1
    #pragma endasm
    }
     
    void Time0_Isr_Int(void)  interrupt 1 //定时器0中断服务子程序
    {
       TH0=(65536-20000)/256;
       TL0=(65536-20000)%256;
       P1=0xF0;
       if((P1&0xF0)!=0xF0)
       {
          Delay_510();
       if((P1&0xF0)!=0xF0)
       {
          P1=0xFE;
       if((P1&0xF0)==0xE0)//数字键0
       {
          KeyNum=0;
       ChangeNum(NumBufe,KeyPos);
       KeyPos++;
        }
       if((P1&0xF0)==0xD0)
       {
        KeyNum=1;
       ChangeNum(NumBufe,KeyPos);
       KeyPos++;
       }
          if((P1&0xF0)==0xB0)
       {
         KeyNum=2;
         ChangeNum(NumBufe,KeyPos);
         KeyPos++;
      }
       if((P1&0xF0)==0x70)
       {
        KeyNum=3;
        ChangeNum(NumBufe,KeyPos);
       KeyPos++;
       }
       P1=0xFD;
       if((P1&0xF0)==0xE0)
       {
        KeyNum=4;
       ChangeNum(NumBufe,KeyPos);
       KeyPos++;
       }
       if((P1&0xF0)==0xD0)
       {
          KeyNum=5;
          ChangeNum(NumBufe,KeyPos);
       KeyPos++;
       }
          if((P1&0xF0)==0xB0)
       {
        KeyNum=6;
      

    展开全文
  • 计算器代码

    2014-07-10 23:54:36
    利用C语言编写一个简单计算器,并能正确运行+,-,*,/四则运算。通过对程序的设计可以对C程序中的函数,循环,数组,调用,文件…
  • C语言写的一个简单计算器

    万次阅读 热门讨论 2016-01-07 15:02:05
    至于为什么写计算器~因为刚学C语言的时候,还没摸过VC,还没碰过编译器就看了几个简单的加减乘除的计算代码。然后就自己想了下,写了段自己认为正确。却不知道错误百出的代码,还发到了论坛。问别人对不对。
  •   题目大意:题目的意思是规定好运算符优先级都一样,一开始看成“如果...AC 代码 #include &lt;stdio.h&gt; int main() { int i, sum, isnan=0; char op='0'; scanf("%d", &amp;sum...
  • 输入连续的乘除混合运算式子,程序根据输入式子进行计算,输出正确计算结果(要求式子不能有括号,每个数均为个位数,例如输入4*5/2,输出10) 解答要求 根据给出部分代码写出完整代码;对代码进行详细注释;
  • C语言编写的有参有返回值的计算器程序代码简单,适合初学者参考。
  • C语言编写的简单计算器程序,可以实现加减乘除幂五种运算,完整的上机报告,报告中附有程序代码,代码编译通过,准确无误。
  • 有时间读者可以用逆波兰式来实现强大功能计算器,原理也很简单,建议读《c程序设计第二版》里面有算法的代码.读者自行研究.此程序基于电子相册的改进,触摸屏,LCD,字符现实,数字输入等等. 主函数部分: #include ...
  • C语言编写的无参无返回值的计算机程序代码简单,适合初学参考。
  • C++编写的计算器代码

    2009-12-12 19:00:34
    C++计算器程序,是用c语言编写的,比较简单的 能实现加减乘除求余!
  • 本实例与上例的区别在于表达式中有括号。其实每个括号中的内容都可以...相应的程序代码如下:  #include "stdio.h"  #include "stdlib.h"  float get_num(char **);  float calculate...
  • 简单计算器

    2015-02-09 17:07:00
    能用c语言编写一个简单计算器,包含加减乘以及括号之间的优先级关系,这样的编程能力算是什么程度? 我也很好奇,能写出来到底怎么样。我写出的代码到底怎么样。便有了下面的代码。 毕竟是好久没有写这些小...
  • /** 程序功能:简单计算器,实现加减乘除平方* 作者版本日期:2015.11.08 zhouhb OK* 源代码:李明 《新概念C语言培训》第33集 C语言Shell命令解释器的实现* 代码存储位置 :133 /home/zhouhb/test/calculator.c* ...
  • 这也是我第一次接触C#,之前上学的时候学过一点C语言,不过感觉好久都没有用过了,最近放假在家闲来无聊就想着做一个简单计算器来娱乐一下自己,整个过程用了两天的时间,写了好几个样子的程序。下面贴出一个试验...
  • 今天这个程序简单,但是值得深入思考。 话不多说,先看看效果,然后上代码: 发现结果还是不错的哈?看看代码其实很简单,但后面要说的才是重点。 #include "stdio.h" #include "stdlib.h" int main() { ...
  • 简单计算器.txt 简单逆阵.txt 线性顺序存储结构.txt 线索化二叉树.txt 绘制圆.txt 编随机数.txt 网络最短路径Dijkstra算法.txt 自我复制.txt 节点.txt 苹果分法.txt 螺旋数组1.txt 螺旋数组2.txt 试题....

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

c语言简单计算器程序代码

c语言 订阅