YXK 发表于 2015-12-18 16:32

【原创源码】初学C语言几天,写了个简单计算器.附源码!

本帖最后由 奋斗丶小Z 于 2015-12-18 19:23 编辑

在这里发帖不知道算不算违规,刚进论坛没多少天.闲余时间就学C语言.这是这几天的学习成果.很简单.还望各位大大指点..switch好像也能实现!
源码在这里
#include <stdio.h>
int js(void);
int main()
{
      js();
      return 0;
}
int js(void)
{
      printf("[----------------------------------------]\n");
      printf("[----------------计算器------------------]\n");
      printf("[-----------CTRL+C结束计算器-------------]\n");
      int a,b,he;
      char yun;
      printf("\n");
      printf("请输入算式,例如(1+1 1*1 8/2 8-1):");
      scanf("%d%c%d",&a,&yun,&b);
      if(yun=='+'){
                he=a+b;
      }else if(yun=='-'){
                he=a-b;
      }else if(yun=='*'){
                he=a*b;
      }else if(yun=='/') {
                he=a/b;
      }
      printf("\n");
      printf("计算结果为:");
      printf("%d%c%d=%d\n",a,yun,b,he);
      printf("\n");
      main();
}





mlb1253 发表于 2015-12-18 19:22

我自己写的。。可以二次使用。。比如我要连续计算如1+2-3/5的话只需输入原式就可以,最后输入=
就会输出结果。
#include<stdio.h>
//前置声明
floataddition(float);
floatsubtraction(float);
floatmultipliction(float);
floatdivision(float);

intmain(void)
{
   
   floati;
   charq;
   printf("\t      欢迎使用!\t\n");
   scanf("%f",&i);
   do
   {
      scanf(" %c",&q);
      if('+'==q)
      i=addition(i);
      elseif('-'==q)
      i=subtraction(i);
      elseif('*'==q)
      i=multipliction(i);
      elseif('/'==q)
      i=division(i);
   
   }while('='!=q);
   
   printf("计算结果为:%f\n",i);
   
   
   return0;
}

floataddition(floatx)
{
   floatm=0;
   
   scanf("%f",&m);
   x=x+m;
   
   returnx;
}

floatsubtraction(floatx)
{
   floatm;
   
   scanf("%f",&m);
   x=x-m;
   
   returnx;
}

floatmultipliction(floatx)
{
   floatm;
   
   scanf("%f",&m);
   x=x*m;
   
   returnx;
}

floatdivision(floatx)
{
   floatm;
   
   scanf("%f",&m);
   x=x/m;
   
   
   returnx;
}

BlackConsole 发表于 2015-12-18 17:04

int a,b;
                char i;
                scanf("%d%c%d",&a,&i,&b);
      switch(i)
      {
            case '+':
               printf("%d",a+b);break;
            case '-':
               printf("%d",a-b);break;
            case '*':
               printf("%d",a*b); break;   
            case '/':
               printf("%d",a/b);break;
            default:
               printf("其他运算");break;
      }
想起在学校的日子了

gomyway 发表于 2015-12-18 16:36

加点进制转换,错误检查功能。

YXK 发表于 2015-12-18 16:40

gomyway 发表于 2015-12-18 16:36
加点进制转换,错误检查功能。

比如变量A和B只能输入0-9数字!yun变量只能输入+,-,*,/.
然后其他输出都提示错误返回从新输入!

lisi111 发表于 2015-12-18 16:53

用switch 有没有更好

BlackConsole 发表于 2015-12-18 16:53

if(yun=='+'){
      he=a+b;
    }else if(yun=='-'){
      he=a-b;
    }else if(yun=='*'){
      he=a*b;
    }else if(yun=='/') {
      he=a/b;
    }
    else
            {
                    printf("//不被支持的运算符");
                    return 0;
          }

忘忧☆草草 发表于 2015-12-18 17:11

我傻叉了。今天辞职,一份别人看起来都说不错的工作,回家对着电脑发呆,找所谓的项目。哎,易语言难学么,我看到有个大神能靠这赚不少钱

钉子户 发表于 2015-12-18 17:14

简单了点~~

riguang2b 发表于 2015-12-18 17:14

#include <stdio.h>
int main()
{int a,b;char f;
        while (scanf("%d%c%d%*c",&a,&f,&b)!=EOF)
        {
                switch(f)
                {
                case '+':printf("%d\n",a+b);break;
                case '-':printf("%d\n",a-b);break;
                case '*':printf("%d\n",a*b);break;
                case '/':printf("%d\n",a/b);break;
                default :printf("不支持此运算符!\n");
                }
        }
        return 0;
}

faintout 发表于 2015-12-18 17:16

你忘了添加一个除数不能为0
页: [1] 2 3 4
查看完整版本: 【原创源码】初学C语言几天,写了个简单计算器.附源码!