关于S1E12作业动动手0
题目我就不再赘述了,小甲鱼的答案如下,我的代码也差不多。#include <stdio.h>int main()
{
int op1, op2;
char ch;
float result;
printf("请输入式子:");
scanf("%d %c %d", &op1, &ch, &op2);
switch (ch)
{
case '-': op2 = -op2; // no break
case '+': result = op1 + op2; break;
case '*': result = op1 * op2; break;
case '/': result = (float)op1 / op2; break;
}
printf("结果是:%.2f\n", result);
return 0;
}
我的问题是,当我输入 op1 是浮点数时, op2如果是整型,那么这个时候减法就会出现0.00的结果,原因我是明白的,但是有什么好的解决方案吗? 你用 %d 接收 当然要输入整数了
为什么要输入浮点数?
要输入浮点数 用 %f 啊 人造人 发表于 2016-2-22 14:20
你用 %d 接收 当然要输入整数了
为什么要输入浮点数?
要输入浮点数 用 %f 啊
但是如果用了%f如果我输入的是一个整型会有影响吗? 漆雕古代 发表于 2016-2-22 15:53
但是如果用了%f如果我输入的是一个整型会有影响吗?
int ret;
float tmp;
scanf ("%f", &tmp);
ret = (int)tmp;
这样也许可以,不过为什么要这样做哪?
需要整数就用 %d
需要浮点数就用 %f
不行吗? 人造人 发表于 2016-2-22 18:27
int ret;
float tmp;
恩,谢谢啦,我只是想让程序更智能一点,不用在改变输入类型的时候去修改源代码{:5_110:}
页:
[1]