关于c语言的一道题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于c语言的一道题相关的知识,希望对你有一定的参考价值。
题目是这样的:输入num1 operator num2这个表达式,已知num1和num2都为整数,operator为+、-、*和/中的一种,请编写程序,设计这个计算器。
我是这样做的:
#include<stdio.h>
int main()
int num1,num2;
char operato;
printf("type in an expression:");
scanf("%d%c%d",&num1,&operato,&num2);
switch(operato)
case'+':
printf("=%.0f\n",num1+num2);
break;
case'-':
printf("=%.0f\n",num1-num2);
break;
case'*':
printf("=%.0f\n",num1*num2);
break;
case'/':
printf("=%.0f\n",num1/num2);
break;
default:
printf("Unknown operator\n");
return 0;
但是不对呢,在运行的时候,出来一个对话框如下
什么意思啊,高手请解答。如果我做错了,请把正确答案写下来,麻烦了
看到你输出是%.0f,于是把代码改了下:
#include<stdio.h>
int main()
int num1,num2;
char operato;
printf("type in an expression:");
scanf("%d%c%d",&num1,&operato,&num2);
switch(operato)
case'+':
printf("=%.0f\n",(float)num1+num2);
break;
case'-':
printf("=%.0f\n",(float)num1-num2);
break;
case'*':
printf("=%.0f\n",(float)num1*num2);
break;
case'/':
printf("=%.0f\n",(float)num1/num2);
break;
default:
printf("Unknown operator\n");
return 0;
运行结果就正确了。但是考虑到两个整数相除结果往往是小数,建议把最后一个输出改成 printf("=%.2f\n",(float)num1/num2); 参考技术A 类型不匹配。
如果一定要用%f输出的话:
printf("=%.0f\n",(float)(num1+num2));
以上是关于关于c语言的一道题的主要内容,如果未能解决你的问题,请参考以下文章