C语言简易计算器项目

C语言简易计算器项目

C语言项目练习之简易计算器

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

int main(int argc, const char *argv[])
{
	int data1,data2,xunhuan4,mode = 1;
	char op;
start:
	printf("该计算器有普通计算模式(1)特殊模式(2):\n");
	scanf("%d",&mode);
	if(mode == 1){
	printf("||||||||||||||||||||模式1||||||||||||||||||||||||||\n");
	printf(" \n \n \n data1 op data2\n");
input:
	scanf("%d %c %d",&data1,&op,&data2);
	switch(op){
	case '+':
		printf("%d %c %d = %d\n",data1,op,data2,data1+data2);
		break;
	case '-':
		printf("%d %c %d = %d\n",data1,op,data2,data1-data2);
		break;
	case '*':
		printf("%d %c %d = %d\n",data1,op,data2,data1*data2);
		break;
	case '/':
		if(data2 == 0){
			printf("分母是零,请重新输入:");
			goto input;}
		else{
		printf("%d %c %d = %.3f\n",data1,op,data2,(float)data1/data2);//防止整除取整,强制转换data1为浮点型
		break;}
	
	default: printf("该计算器没有此功能,请重新输入:");
			 goto input;
	}
		goto loop;
		}
	else if(mode == 2){
		printf("||||||||||||||||||||模式2|||||||||||||||||||||||||\n \n \n \n");
		printf("(1)开平方       (2)平方      \n");
		printf("(3)进制转换      (4)正在开发...\n");
		int mode_2 = 0;
		printf("\n \n请输入模式(1/2/3/4): ");
		scanf("%d",&mode_2);
		if(mode_2 == 1){
			float mode_2_var1;
			printf("_--------------------------模式1(开平方)---------------------\n \n");
			printf("输入格式为 --- num  :");
			scanf("%f",&mode_2_var1);
			printf("%f",sqrt(mode_2_var1));
			goto loop;
		}
		else if(mode_2 == 2){
			printf("----------------------------模式2(平方)------------------------\n \n");
			printf("输入格式为 ---a b----(a的b次方)");
			float mode_2_2_var1,mode_2_2_var2;
			scanf("%f %f",&mode_2_2_var1,&mode_2_2_var2);
			printf("%.1f的%.1f次方为%.2f\n",mode_2_2_var1,mode_2_2_var2,pow(mode_2_2_var1,mode_2_2_var2));
			goto loop;
		}
		else if(mode_2 == 3){
			printf("----------------------------模式3(进制转换) ---------------------\n \n");
			printf("请先输入数据的进制:");
			int mode_2_3_var3;
jinzhi:
			scanf("%d",&mode_2_3_var3);
			printf("输入格式为-----a c-----(a的b进制表示)(只能转换16,10,8进制)--------");
			int mode_2_3_var1,mode_2_3_var2,mode_2_3_jinzhi,mode_2_3_number;
jinzhi2:
			switch (mode_2_3_var3){//输入数据的键入格式
			case 8:
				scanf("%o %d",&mode_2_3_number,&mode_2_3_jinzhi);
				break;
			case 10:
				scanf("%d %d",&mode_2_3_number,&mode_2_3_jinzhi);
				break;
			case 16:
				scanf("%x %d",&mode_2_3_number,&mode_2_3_jinzhi);
				break;
			default: printf("你的进制数输入错误,请重新输入:");
					 goto jinzhi;}

			switch(mode_2_3_jinzhi){
			case 8:
				printf("%o\n",mode_2_3_number);
				break;
			case 10:
				printf("%d\n",mode_2_3_number);
				break;
			case 16:
				printf("%#x\n",mode_2_3_number);
				break;
			default:
				printf("进制输入错误,请重新输入:");
				goto jinzhi2;
				}
			}
		else if(mode_2 == 4){
			printf("开发人员正在开发,敬请期待!\n");
			goto loop;
		}
loop: 
			printf("如果要继续输入请输入1,退出请按0\n");
			scanf("%d",&xunhuan4);
			if(xunhuan4 == 1){
				goto start;}
			else if(xunhuan4 == 0){
				goto end;}
	}
end:
	printf("--------------------欢迎使用此计算器,再见!”---------------------------\n");
	return 0;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值