问题:设计一个简单的计算器,分别输入第一个数字、运算符、第二个数字,做完一次计算后询问用户是否进行下一次运算。
代码:
解法一:
int bol = YES;
while (bol) {
int num1=0,num2=0,num3=0;
char op[5];
printf("请输入数字1:");
scanf("%d",&num1);
printf("请输入运算符:");
scanf("%s",op);
printf("请输入数字2:");
scanf("%d",&num2);
if (op[0] =='+') {
num3 = num1 + num2;
}else if (op[0]=='-'){
num3 = num1 - num2;
}else if (op[0]=='*'){
num3 = num1 * num2;
}else if (op[0]=='/'){
num3 = num1 / num2;
}else if (op[0]=='%'){
num3 = num1 % num2;
}
printf("%d\n",num3);
printf("是否再次计算:");
scanf("%d",&bol);
}
解法二:
float num1,num2;
int oper;
BOOL con = YES;//如果con为yes,则重复循环
while (con) {
printf("请输入第一个数字:\n");
scanf("%f",&num1);
printf("请输入运算符:1、+ 2、- 3、* 4、/");
scanf("%d",&oper);
printf("请输入第二个数字:");
scanf("%f",&num2);
float res = 0;
if (oper == 1) {
res = num1 + num2;
}else if (oper == 2){
res = num1 - num2;
}else if (oper == 3){
res = num1 * num2;
}else if (oper == 4){
res = num1 / num2;
}else{
res = 0;
printf("未识别符号\n");
}
if (res == (int)res) {
printf("%d\n",(int)res);
}else{
printf("%f",res);
}
//输入判断,如果不等于1,则停止循环
printf("是否继续运算?1、继续 其他、退出");
int choose = 0;
scanf("%d",&choose);
if (choose !=1) {
con = NO;
printf("退出\n");
}