C语言编写四则运算

作者&投稿:承科 (若有异议请与网页底部的电邮联系)
C语言编写程序四则运算法则~

1234567891011121314151617# include int main(void){ int a,b,s; char c; scanf("%d%c%d",&a,&c,&b); switch(c) { case '+':s=a+b;break; case '-':s=a-b;break; case '*':s=a*b;break; case '/':s=a/b;break; default:return -1; } printf("%d",s); return 0;}
如果还要判断除数为0的情况 再添个if即可
一. 基本概念
1.C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
2.尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
3.二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。
二. 基本特性
1、C是高级语言:它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、C是结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于编码、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3、C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
4、C语言适用范围大:适合于多种操作系统,如Windows、linux、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,优于其它高级语言,有一些大型应用软件也是用C语言编写的。
5、C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
6、C语言文件由数据序列组成:可以构成二进制文件或文本文件常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode(mac os x)等。

代码如下:
#include
int main()
{
float fFloat1=.0,fFloat2=.0;
char cOP=NULL;
printf("请输入要进行四则运算表达式:
");
scanf("%f%c%f",&fFloat1,&cOP,&fFloat2);
switch(cOP)
{
case '+':
printf("%f+%f=%f
",fFloat1,fFloat2,fFloat1+fFloat2);
break;
case '-':
printf("%f-%f=%f
",fFloat1,fFloat2,fFloat1-fFloat2);
break;
case '*':
printf("%f*%f=%f
",fFloat1,fFloat2,fFloat1*fFloat2);
break;
case '/':
if(0!=fFloat2)
{
printf("%f/%f=%f
",fFloat1,fFloat2,fFloat1/fFloat2);
}
else
{
printf("error!
");
}
break;
default:
printf("error!
");
break;
}
return 0;
}

扩展资料
switch语句和if语句的区别:
1、大于等于(>=)、小于等于(<=)的判断用if语句,而等于(=)的判断用switch语句。
2、switch语句中的case类似于if…else…else if…else,但是离散值的判断。(离散值的判断自认为是等于情况的判断)。
3、switch一般都可以及用if重写,但是if不一定能用switch重写。
4、不要忘了break.C#中break不写是不行的,除了合并case的情况。
5、case 中的值必须是常量,不能是变量、表达式。
参考资料来源:
百度百科——Switch函数

请先给出明确答复:因为程序规定的是先输入操作符,再输入两个操作数

解释原因:请看下面部分的代码

  1.  第一个scanf("%c",&oper);这一句要求输入一个(注意是一个)字符格式的值,给oper;
  2. 如果你输入一个数字、英文等等,假如你第一个输入的是10,那oper就是1,而不是10,因为%c一次只能读取一个字符;

  3. 接下来,输入第二第三个,程序再往下就会拿oper判断,如果oper等于-号,就会执行减法,如果等于+号就会执行加法;

  4. 所以你输入的操作数是不会匹配任何运算符,就不能进行运算。

有无解决办法:

调换语句顺序:复制第一个printf那一行与第一个scanf那一行,注意这两行printf在scanf的上面,把这两句放到第二个scanf之后,第三个print之前。就能输入 1 空格 + 空格 2 回车,这种的



这个程序运行时首先就会提示你输入运算符,然后再提示你输入操作数。你不按提示来,当然程序报错。

下面是个完整的程序,我测试通过符合你的要求,你在看看,我写的模块化实现,给你贴的有些乱,
函数声明如果在一个.c 文件把所有的子函数都在前面在声明一下,不是很复杂,

#include <stdio.h>
#include <math.h>
(#include "head.h" ) //自己定义的一定要用双引号括起来
//如果用尖括号就会出错
//这里包含的.h 文件时各个子函数的声明可以去掉
//函数功能:实现了减加乘除运算
void main()
{
void (*p)(float ,float); //定义指向函数的指针变量
float a,b; //上面的语句有些难度,相当于一个函数
char logo;
puts("输入两个数和想要的操作:\n");
scanf("%f%c%f",&a,&logo,&b);
while(1)
{switch(logo)
{
if((logo=='+')&&(logo=='-')&&(logo=='/')&&(logo=='*'))
{case '+': p = sum; (*p)(a,b);break; //这里就把指针给加
case '-': p = subtraction; (*p)(a,b);break; //同上
case '/': p = division; (*p)(a,b);break; //同上 给除
case '*': p = multiplication; (*p)(a,b);break;
default:break;
}
else
printf("输入错误重新输入")
}

}
}
#include <stdio.h>
#include <math.h>

void division(float a,float b)
{
float div;
div=a/b;
printf("%.3f\n",div);
}
#include <stdio.h>
#include <math.h>
void multiplication(float a,float b)
{
float mul;
mul=a*b;
printf("%.3f\n",mul);
}
#include <stdio.h>
#include <math.h>
void subtraction(float a,float b)
{
float ch;
ch=a-b;
printf("%.3f\n",ch);

}
#include <stdio.h>
#include <math.h>

void sum(float a,float b)
{
float he;
he=a+b;
printf("%.3f\n",he);
}

是自增一的意思~比如定义一个整型变量并赋值a=3,执行a++后a值为4,要是++a是a当前值先参与运算后a才增一、要是--同理~把自增改为自减就行啦~
打字不易,如满意,望采纳。


如何运用大一C语言基础编写简单带括号的四则运算?
利用堆栈将中缀表达式转换为后缀表达式计算。简单给你讲一下算法:1.从中缀表达式中逐字符读入操作数 2.若操作数为数字,直接输出到后缀表达式队列 3.若操作数为左括号(,将其压栈 4.若操作数为加减乘除运算符,将其与栈顶元素比较:①操作数优先级高于栈顶元素,则将操作数压栈;②操作数优先级等于...

在C语言环境下开发简单的四则运算的命令行计算器
;else if (argv[2]=='-')printf( "\\n%d\\n",a-b);else if (argv[2]=='*')printf( "\\n%d\\n",a*b);else if (argv[2]=='\/')printf( "\\n%d\\n",a\/b);} 简单来写就是这样的 。比如你编译的运行程序是cale.exe,那么你输入方式就是 cale 1 + 2 回车。注意有空格 ...

四则运算之加减法--C语言编程
简单示例如下:程序在vc6.0编译通过,执行效果如下:

C语言怎么实现四则运算
我曾用c编了个计算器,支持四则运算,支持括号改变优先级,你看看吧:include <stdio.h> include <string.h> include <stdlib.h> include <conio.h> define Esc 27 define Tab 9 void needle(char* s,char* carriage,int start)\/\/needle意为“用针缝”{ int size_carriage=(int)strlen(carriage)...

c语言设计四则运算 输入一个式子就得解
include<stdio.h> void main(){ float a=0,c=0,d=0;char b;printf("welcome\\n") ; \/\/分号是C一条语句的结尾 scanf("%f%c%f",&a,&b,&c);if (b=='\/') \/\/单字符要用''引起来 { if(c==0) \/\/这里比较要用==,=是赋值 { printf("error\\n") ; \/\/分号 return ; \/...

如何用c语言编写可以实现四则运算的计算器
num[i]*num[i+1] : num[i]\/num[i+1]); num[i]=n; del(i); \/*删除其中的乘除号和已经运算过的数字*\/ i--; } else p++;} } void del(int n){ int i; for(i=n;i<strlen(sign);i++) { sign[i]=sign[i+1]; num[i+1]=num[i+...

c语言编写 编写一个简单的计算器,实现两个整型数的四则运算。
将c定义为选择计算方式的变量。用switch语句,将c作为选择变量,填写计算方式的选项,最后在主函数中输入一个输出函数来输出计算式及结果即可完成程序的编写:3、运行编译查询,输入一个除法的计算验证一下,发现程序输出了小数,说明程序运行正常。以上就是用C语言编写计算器的流程:...

c语言写四则运算...输入一个等式。。。再输入结果。。。判断正误...
include<stdio.h> include<conio.h> void main(){ while(1){ int a=0,b=0,c=0,result,key;char d;printf("输入两个整数:\\n");scanf("%d",&a);scanf("%d",&b);printf("选择算法 '+','-','*','\/' \\n");scanf(" %c",&d);printf("输入计算结果:\\n");scanf("%d",&...

利用C语言开发一个“四则算术运算答题系统”,随机为用户出指定数量的10...
\/\/题目数量 int yunsuan=1;\/\/接受用户想进行什么运算 int i;\/\/循环变量 char yunsuanfu[4]={'+','-','*','\/'};\/\/存储运算符 int current_num1=1,current_num2=1;\/\/当前进行运算的数字 int input_result;\/\/用户输入的结果 int score=0;\/\/总分 int (*pfun[...

C语言课程设计 小学生四则运算练习系统 源程序
include<stdio.h> include<stdlib.h> include<math.h> define maxsize 50 void trans(char str[],char exp[])\/*将算术表达式str转换成后缀表达式exp*\/ { struct { char data[maxsize]; \/*存放运算符*\/ int top; \/*栈指针*\/ }opr; \/*定义运算符栈*\/ char ch;int i=0,t=0; ...

沧州市13732392810: 用c语言编程简单的四则运算 -
笪虹八味: 程序里面用随机数,产生两个自然数,然后根据你需要,如果需要加,就循环上面步骤25次,每次结果打印到文件.如果需要减,也循环25次,依此类推.

沧州市13732392810: 完成四则运算C语言程序 -
笪虹八味: h> int main(void) { double a,b; printf(", a+b,a-b,a*b,a/b)# include

沧州市13732392810: 用C语言编程实现一个简单的四则运算计算器 -
笪虹八味: #include <stdio.h> //函数,读数操作数 int getNextNum() { int ret; scanf("%d",&ret); return ret; } //函数,读运算符 char getOpt() { return getchar(); } //函数,计算 int caculate(int op1 , int op2 ,char opt) { if(opt=='+')return op1+op2; if(opt=='-')...

沧州市13732392810: C语言编写四则运算 -
笪虹八味: \\分得给! #include <stdio.h> #include <stdlib.h> #include <time.h> void main(){int a,b,i,c,d,e,f,g=0;FILE *out;out=fopen("error_record.txt","w");srand((unsigned)time(NULL)); ov:printf("抽取题目总数:");scanf("%d",&d);if(d<1)...

沧州市13732392810: C语言,编写一个算术四则运算的程序 -
笪虹八味: 主要是你的scanf输入有问题,你可以打印一下输入的x,y值看是否正确, 将scanf("%f,%f,%c",&x,&y,&z);改成scanf("%lf,%lf,%c",&x,&y,&z);double类型应该为lf%

沧州市13732392810: c语言“四则运算”
笪虹八味: #include<stdlib.h> #include<stdio.h> #include<time.h> #include <math.h> #include <conio.h> void main() { int s,d=0; int a,b,c,z,v,m; char ch[4]={'+','-','x','/'}; srand((unsigned)time(NULL)); m=100; b=rand()%m; printf("%d ",b); z=b; for(s=0;s<3;s++) {...

沧州市13732392810: C语言的 四则运算 -
笪虹八味: double cal(double a[],char e[],int j) //定义cal函数,用于判别各运算符号优先级和计算结果 { int i,n,flag=1; //flag用于标识是不是有被除数为0的情况(falg==0),如有则不输出运算结果 for(i=0;i<=j;n=++i) { if(e[i]==0&&flag) { printf("%lf\n",a[i]); //当...

沧州市13732392810: 谁能帮我用C语言编写一个四则运算,越简单越好呀!最好有中文解释的,初学者呀!急!!!! -
笪虹八味: 用纯粹的c语言实现,代码如下:#include int main() { double a,b; scanf("%lf%lf", &a, &b); printf("a+b=%lf, a-b=%lf, a*b=%lf", a+b, a-b, a*b); if(b==0) printf(", error!\n"); else printf(", a/b=%lf\n", a/b); return 0; }

沧州市13732392810: c语言编一个四则运算程序,如(a+b)*(a - b)+c/d 然后由我随机输入四个字符 计算机就可进行运算 -
笪虹八味: #include <stdio.h> void main(void) { int a=0,b=0,c=0,d=0; int formula=0; printf("请输入四个整数:\n"); scanf("%d %d %d %d",&a,&b,&c,&d); formula=(a+b)*(a-b)+c/d; printf("%d\n",formula); } 这是计算整数的如果小数 就要把int 改为double或float 如果是字符就是要 char

沧州市13732392810: c语言写简单的四则运算,就是随机输入两个数,可以进行加减乘除.
笪虹八味:#include <stdio.h> int main() { double a,b,c; printf("输入两个数:"); scanf("%lf%lf",&a,&b); c=a+b; printf("%lf+%lf=%lf\n",a,b,c); c=a-b; printf("%lf-%lf=%lf\n",a,b,c); c=a*b; printf("%lf*%lf=%lf\n",a,b,c); if(b==0) printf("%lf/%lf=除数不能为0\n",a,b); else { c=a/b; printf("%lf/%lf=%lf\n",a,b,c); } return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网