用c语言编写一个简单计算器程序

输入格式未data1 op data2. data1和data2为参加运算两个数,op为预算符号只能取+、-、*、/ 求助谢谢。。。用swich语句和if。。。还未学循环

#include<stdio.h>//计算器

voidmenu()//自定义的菜单界面

printf("--------------------\n");

printf("请输入你的选择\n");

printf("1.+\n");

printf("2.-\n");

printf("3.*\n");

printf("4./\n");

printf("--------------------\n");

intmain()

inti=0;

intj=0;

intnum=0;//计算结果存放在nun

intselect=0;//选择的选项存放在select

do//do-while先执行再判断循环条件,即可实现重复计算功能

menu();//打印出菜单界面

scanf("%d",&select);//输入你的选项

printf("请输入计算值:");

scanf("%d%d",&i,&j);//输入要计算的数值

switch(select)

case1:

printf("%d+%d=%d\n",i,j,num=i+j);//实现加法功能

break;

case2:

printf("%d-%d=%d\n",i,j,num=i-j);//实现减法功能

break;

case3:

printf("%d*%d=%d\n",i,j,num=i*j);//实现乘法功能

break;

case4:

printf("%d-%d=%d\n",i,j,num=i/j);//实现除法功能

break;

default:

printf("输入有误重新选择");

break;

}while(select);

return0;

运行结果:

扩展资料:

return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。

return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-03-16
#include <stdio.h>
main()
{
char ch;
int num1,num2;
printf("\t运算器功能菜单\t\n");
printf("----------------------------------\n");
printf("\t1:加法\t\n");
printf("\t2:减法\t\n");
printf("\t3:乘法\t\n");
printf("\t4:除法\t\n");
printf("\t0:退出运算器\t\n");
printf("----------------------------------\n");
printf("\t选择运算(1-4,0):");
//输入数据
ch = getchar();
printf("\n");
printf("----------------------------------\n");
printf("\t输入运算数:\n");
printf("\t第一个数:");
scanf("%d",&num1);
printf("\t第二个数:");
scanf("%d",&num2);
printf("----------------------------------\n");
printf("\t运算结果:");
if(ch=='1')
printf("%d + %d = %d",num1,num2,num1+num2);
else if(ch=='2')
printf("%d - %d = %d",num1,num2,num1-num2);
else if(ch=='3')
printf("%d * %d = %d",num1,num2,num1*num2);
else if(ch=='4')
printf("%d / %d = %d",num1,num2,1.0*num1/num2);
else if(ch=='0')
printf("结束");
printf("\n");
printf("----------------------------------\n");
}
第2个回答  推荐于2016-05-01
double a,b;
char c;
scanf("%lf%c%lf",&a,&c,&b);
switch(c)
{case '+':printf("%g%c%g=%g",a,c,b,a+b);break;
case '-':printf("%g%c%g=%g",a,c,b,a-b);break;
case '*':printf("%g%c%g=%g",a,c,b,a*b);break;
case '/':b?printf("%g%c%g=%g",a,c,b,a/b):puts("error");break;
default:printf("error");break;
}追问

怎么排除除数为0的情况??

追答

case '/':b?printf("%g%c%g=%g",a,c,b,a/b):puts("error");这不写了吗?除数为零,输出error

追问

谢谢。。。刚没看仔细

本回答被提问者采纳
相似回答