#include<stdio.h>
int main()
{
double tot,i,j;
char ch;
printf("请输入第一个数:") ;
scanf("%f",&i);
printf("请输入运算符;");
scanf("%c",&ch);
printf("请输入第二个数:") ;
scanf("%f",&j);
if(ch=='+') {
tot=i+j;
}else if(ch=='-'){
tot=i-j;
}else if(ch=='*'){
tot=i*j;
}else if(ch=='/'){
tot=i/j;
}
printf("%f",tot);
return 0;
}
#include<stdio.h>
int main()
{
int sum,j;
printf("请输入第1个数:") ;
scanf("%d",&sum);
char ch;
int t;
for(t=2;getchar()!='=';t++){
printf("请输入运算符以及第%d个数:",t);
ch=getchar();
scanf("%d",&j);
switch(ch){
case'+':sum+=j;break;
case'-':sum-=j;break;
case'*':sum*=j;break;
case'/':sum/=j;break;
}
printf("%d\n",sum);
}
printf("%d",sum);
return 0;
}
2020.3.20 14:36更新第二版(加入了菜单,优化了界面,但是选项只可用两个)
#include<stdio.h>
#include <conio.h>//用于getch()读取用户输入的按键
#include<windows.h>//用于清理屏幕
int main()
{
//多次运算多组数据
do{
//菜单
printf("---------------------菜单--------------------\n") ;
printf("↑:加减乘除 \n") ;
printf("Esc:退出 \n") ;
printf("Home:设置 \n") ;
printf("---------------------------------------------\n") ;
//判断用户输入选项
char userput;
userput=getch();//第一次调取 ,之后的if是第二次调取,实际值
//加减乘除运算
if(userput==72)
{
printf("---------------------------------------------\n");
printf("| 加减乘除模式 |\n");
printf("---------------------------------------------\n");
int sum,j;
printf("请输入第1个数:") ;
scanf("%d",&sum);
char ch;
int t;
//多次输入计算单组数据
for(t=2;getchar()!='=';t++){//t的作用是为下面提示输入第几个数
//获取用户输入的运算符以及第几个数
printf("请输入运算符及第%d个数(如:+8,如果结束运算请输入==):",t);
ch=getchar();
scanf("%d",&j);
//判断运算符,做出对应运算
switch(ch){
case'+':sum+=j;break;
case'-':sum-=j;break;
case'*':sum*=j;break;
case'/':sum/=j;break;
}
printf("本次计算结果=%d\n",sum);
}
//printf("最终结果=%d",sum);
}
//退出程序
else if(userput==27)
{
printf("---------------------------------------------\n");
printf("| 退出程序 |\n");
printf("---------------------------------------------\n");
break;
}
//为了让布局美观,每次算完之后清空屏幕 ,用到了头文件#include<windows.h>
system("cls") ;
}while(1);
return 0;
}
#include<stdio.h>
#include <conio.h>//用于getch()读取用户输入的按键
#include<windows.h>//用于清理屏幕
int main()
{
int set;//用于设置选项卡,放在外面的原因是让每一次循环都可以用到,而不改变set的值,以免影响下一次循环
int point=2;//用于设置选项卡,对于输出的数保留n位小数 ,默认保留两位小数
//多次运算多组数据
do{
//菜单
printf("---------------------菜单--------------------\n") ;
printf("↑:加减乘除 \n") ;
printf("Esc:退出 \n") ;
printf("Home:设置 \n") ;
printf("---------------------------------------------\n") ;
//判断用户输入选项
char userput;
userput=getch();//第一次调取 ,之后的if是第二次调取,实际值
//加减乘除运算
if(userput==72)//72表示用户输入上箭头
{
printf("---------------------------------------------\n");
printf("| 加减乘除模式 |\n");
printf("---------------------------------------------\n");
double sum,j;
printf("请输入第1个数:") ;
scanf("%lf",&sum);
char ch;
int t;
//多次输入计算单组数据
for(t=2;getchar()!='=';t++){//t的作用是为下面提示输入第几个数
//获取用户输入的运算符以及第几个数
printf("请输入运算符及第%d个数(如:+8,以==退出):",t);
ch=getchar();
scanf("%lf",&j);
//判断运算符,做出对应运算
switch(ch){
case'+':sum+=j;break;
case'-':sum-=j;break;
case'*':sum*=j;break;
case'/':sum/=j;break;
}
printf("本次计算结果=%.*lf\n",point,sum);
}
}
//退出程序
else if(userput==27)
{
printf("---------------------------------------------\n");
printf("| 退出程序 |\n");
printf("---------------------------------------------\n");
break;
}
//设置选项卡
//判断区
else if(userput==71)
{
printf("---------------------------------------------\n");
printf("| 设置 |\n");
printf("|1.刷新屏幕 |\n");
printf("|2.保留小数 |\n");
printf("---------------------------------------------\n");
int setin;
char setchoose;
printf("请输入数字以进入选项:") ;
scanf("%d",&setin);
//1.刷新屏幕
if(setin==1)
{
printf("是否关闭刷新屏幕[y/n]:");
scanf("%c",&setchoose);
if(setchoose=='y'){
set=1;
} else{
set=0;
}
}
//2.保留小数
if(setin==2)
{
printf("你希望保留几位小数?:");
scanf("%d",&point);//这里不需要经过执行区
}
}
//执行区
if(set==1)//选择的是弄yes
{
}
else//选择的是no
{
//为了让布局美观,每次算完之后清空屏幕 ,用到了头文件#include<windows.h>
system("cls") ;
}
}while(1);
return 0;
}
2020.3.20 20:04
更新第三版:优化了加减乘除(可以进行小数运算,多亏了%lf);
加入了十进制转换其他进制模式;
加入了设置,可以选择是否关闭“刷新屏幕”;可以选择保留几位小数
进制转换.png
#include<stdio.h>
#include <conio.h>//用于getch()读取用户输入的按键
#include<windows.h>//用于清理屏幕
int main()
{
int set;//用于设置选项卡,放在外面的原因是让每一次循环都可以用到,而不改变set的值,以免影响下一次循环
int point=2;//用于设置选项卡,对于输出的数保留n位小数 ,默认保留两位小数
double i,j,k,sum,num,left;//参与计算:加减乘除,进制转换
int ip,jp,kp,sump,nump,leftp;//参与计算:加减乘除,进制转换
//多次运算多组数据
do{
//菜单
printf("---------------------菜单--------------------\n") ;
printf("↑:加减乘除 \n") ;
printf("↓:进制转换 \n") ;
printf("Esc:退出 \n") ;
printf("Home:设置 \n") ;
printf("---------------------------------------------\n") ;
//判断用户输入选项
char userput;
userput=getch();//第一次调取 ,之后的if是第二次调取,实际值
//加减乘除运算
if(userput==72)//72表示用户输入上箭头
{
printf("---------------------------------------------\n");
printf("| 加减乘除模式 |\n");
printf("---------------------------------------------\n");
double sum;
printf("请输入第1个数:") ;
scanf("%lf",&sum);
char ch;
int t;
//多次输入计算单组数据
for(t=2;getchar()!='=';t++){//t的作用是为下面提示输入第几个数
//获取用户输入的运算符以及第几个数
printf("请输入运算符及第%d个数(如:+8,以==退出):",t);
ch=getchar();
scanf("%lf",&j);
//判断运算符,做出对应运算
switch(ch){
case'+':sum+=j;break;
case'-':sum-=j;break;
case'*':sum*=j;break;
case'/':sum/=j;break;
}
printf("%lf%c%lf=%.*lf\n",sum,ch,j,point,sum);
}
}
//进制转换
else if(userput==80)
{
printf("---------------------------------------------\n");
printf("| 进制转换模式 |\n");
printf("---------------------------------------------\n");
do{
printf("请输入你要转换的十进制整数:");
scanf("%d",&ip);
printf("你想转换成___进制:");
scanf("%d",&jp);
//处理数据
kp=ip;//暂存IP的数值,下面要对他分解
sump=0;//初始总和=0
for(nump=1;ip>0;nump*=10) {
leftp=ip%jp;//取余
ip/=jp;//取整
sump+=nump*leftp;//倒序相加
}
ip=kp;//IP换回原来值
printf("%d的%d进制数是%d\n",ip,jp,sump);
printf("按下任意键继续(Esc退出)\n");//借用退出程序的功能
userput=getch();
}while(userput!=27);
}
//退出程序
else if(userput==27)
{
printf("---------------------------------------------\n");
printf("| 退出程序 |\n");
printf("---------------------------------------------\n");
break;
}
//设置选项卡
//判断区
else if(userput==71)
{
printf("---------------------------------------------\n");
printf("| 设置 |\n");
printf("|1.刷新屏幕 |\n");
printf("|2.保留小数 |\n");
printf("---------------------------------------------\n");
int setin;
char setchoose;
printf("请输入数字以进入选项:") ;
scanf("%d",&setin);
//1.刷新屏幕
if(setin==1)
{
printf("是否关闭刷新屏幕[y/n]:");
scanf(" %c",&setchoose);//考虑到scanf的读取,上一个scanf结尾是\n,在进行这个scanf的时候把\n算在%c里面,一定要加一个空格
if(setchoose=='y'){
set=1;
} else{
set=0;
}
}
//2.保留小数
else if(setin==2)
{
printf("你希望保留几位小数?:");
scanf("%d",&point);//这里不需要经过执行区
}
}
//执行区
if(set==1)//选择的是弄yes
{
printf("修改成功\n");
}
else//选择的是no
{
//为了让布局美观,每次算完之后清空屏幕 ,用到了头文件#include<windows.h>
system("cls") ;
}
}while(1);
return 0;
}
原文:https://www.cnblogs.com/oceaninfinite/p/12534608.html