栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

demo3:用C语言做一个计算器吧!

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

demo3:用C语言做一个计算器吧!

代码如下:

#include //C语言编写计算器程序 ^_^ 
void Counter1(int a,int b,char op); //函数声明! 
void Counter2(double c,double d,char op);
void Show_Sum1(int a,char op,int b,int sum); 
void Show_Sum2(double c,double d,char op,double sum);
int Add(int a,int b);
int Sub(int a,int b);
int Mul(int a,int b);
double Div(double a,double b);
int main(){
	int a=0,b=0;//初始化 
	double c=0.0,d=0.0;
	char op='#';
	char ch='#';
	int choi=0;
	do{
		printf("请输入数据:(想使用加法减法乘法功能输入1,使用除法功能输入2)n");
		scanf("%d",&choi);
		if(choi==1){
			printf("输入数据的格式:数值 运算符 数值n");
			scanf("%d %c %d",&a,&op,&b);//别忘记取地址运算符!! 
			fflush(stdin);//用来清理缓存区!(执行输入以'n'代表输入结束,'n'会留在缓存区,故应先清空缓存区以防ch接收到该字符而结束循环!)
			Counter1(a,b,op);
		}
		else if(choi==2){
			printf("输入数据的格式:数值 运算符 数值n");
			scanf("%lf %c %lf",&c,&op,&d);//别忘记取地址运算符!! 
			fflush(stdin);//用来清理缓存区!(执行输入以'n'代表输入结束,'n'会留在缓存区,故应先清空缓存区以防ch接收到该字符而结束循环!)
			Counter2(c,d,op);
		}
		printf("是否继续?(Y/N):n");
		ch=getchar();//输入字符Y(y)或N(n) 
	}while(ch=='Y'||ch=='y');
	return 0;
} 
void Counter1(int a,int b,char op){
	int sum=0;
	int optag=true;//以防分母为零(出现错误)或输入错误字符仍调用Show_Sum()函数进行输出。 
	switch(op){
		case '+':sum=Add(a,b);break;
		case '-':sum=Sub(a,b);break;
		case '*':sum=Mul(a,b);break;
		default:{
			printf("运算符错误!n");
			optag=false;
			break;
		}
	}
	if(optag) Show_Sum1(a,op,b,sum);
}
void Counter2(double c,double d,char op){
	double sum=0.0;
	int optag=true;//以防分母为零(出现错误)或输入错误字符仍调用Show_Sum()函数进行输出。 
	switch(op){
		case '/':{
			if(d==0){
				optag=false;
				printf("被除数为零,发生错误!n");
			}
			else sum=Div(c,d);
			break;
		}
		default:{
			printf("运算符错误!n");
			optag=false;
			break;
		}
	}
	if(optag) Show_Sum2(c,d,op,sum);
}
void Show_Sum1(int a,char op,int b,int sum){
	printf("%d %c %d=%d",a,op,b,sum);//输出计算结果 
}
void Show_Sum2(double c,double d,char op,double sum){
	printf("%.4f %c %.4f=%.4f",c,op,d,sum);
}
int Add(int a,int b){
	return a+b; //加 
}
int Sub(int a,int b){
	return a-b; //减 
}
int Mul(int a,int b){
	return a*b; //乘 
}
double Div(double a,double b){
	return a/b; //除 
}

ps:该注意的或容易出现问题的已经在代码区用注释标记了。

代码实现如下:

 如有不足请大佬们指出!会继续加油的!^_^

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347625.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号