这是我学编程以来第一个独立完成的程序,,好开心~~~嘿嘿
在这里深刻体会到一个变量的值 交换给另一个变量的重要性 同时也学到变量 “值” 先取出来 与 后取出来 的不同
/**
* 这是一个简易多数计算器
* 思路:用while控制循环计算器,用户输入第一个数。再用 do --- while 控制循环输入 运算符 和 下一个数,
* 里面用 if --- else if 判断输入的运算符再用 swith 做相应的运算。
* 然后用 if 判断等号,用 switch 判断上一步的运算符并输出相应的值。
*
* 程序员:佘长庚
*/
#include
//写一个多个数的计算器,在这只实现从左至右运算,没有优先符
void main(void){
int numA = 0; //第一个数
int numB = 0; //第二个数
int numC = 0; //交换数
int temp = 0; //交换数
char operators =""; //接收用户输入的运算符
int condition = 1; //控制while第一个条件
//控制while第二个条件
int controlThree =0; //控制 while 第三个条件
char equal; //存运算符
char inContinue; //存储等于号
//int grandTotal; //累计算
//int savingsNum; //for 循环
//int equalCalculated; //累记等于次数
int survey = 0; //结束询问调查
printf(" 欢迎使用多数计算器\n\n");
//下面用 while 循环计算器
while(condition){
printf("请输入第一个数: ");
scanf("%d",&numA);
//判断用户是否输入等于
do{
printf(" 请输入运算符: ");
scanf("%s",&operators);
if(operators=='='){
inContinue='=';
controlThree=0;
printf("=============================================");
}else{
//判断是否是数学运算
if(operators=='+' || operators=='-' || operators=='*' || operators=='/'){
printf("请输入第下个数: ");
scanf("%d",&numB); //接收用户输入下一个数
//判断运算符并进行计算
switch(operators){
case '+':
equal='+';
numC=numA+numB;
break;
case '-':
equal='-';
numC=numA-numB;
break;
case '*':
equal='*';
numC=numA*numB; ;
break;
case '/':
equal='/';
numC=numA/numB;
break;
}
}else{
printf("你输入的运算符有误,请重新输入\n");
inContinue=1;
}
//交换数值
temp=numA; //特别注意这里,提前取出 numA 值 才能出输上一步的结果
numA=numC;
//控制 while 循环
controlThree=1;
}
}while(controlThree);
//下面判断是否是“等于号”输出打印运算
if(inContinue=='='){
//判断上一步的运算符,输出相应的结果
switch(equal){
case '+':
printf("\n %d + %d = %d \n\n",temp,numB,numC);
break;
case '-':
printf("\n %d - %d = %d \n\n",temp,numB,numC);
break;
case '*':
printf("\n %d * %d = %d \n\n",temp,numB,numC);
break;
case '/':
printf("\n %d / %d = %d \n\n",temp,numB,numC);
break;
}
}
printf("\n是否继续运算 1 是 0 退出\n");
scanf("%d",&condition);
}
printf("\n感谢使用本系统\n \n 非常满意请按 1 \n 满意请按 2 \n 不满意请按 3\n");
scanf("%d",&survey);
if(survey<=3&&survey>=1){
printf("谢谢配合");
}else{
printf("谢谢使用");
}
}