达不到预期的结果
先看代码:
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
void main(){
int s1, s2;
float s3;
char f;
scanf("%d%c%d",&s1,&f,&s2);
if (f == '+'){
s3 = s1 + s2;
}
else if(f == '-'){
s3 = s1 - s2;
}
else if(f == '*'){
s3 = s1 * s2;
}
else if(f == '/'){
s3 = s1 / s2;
}
printf("%d%c%d=%d",s1,f,s2,s3);
}
我输入5/3后,得出的数尽然是0!
[解决办法]
在表达式前加上(double)
像这样s3 = (double)s1 / s2
输出格式改成像1楼这样printf("%d%c%d=%.2lf",s1,f,s2,s3);
[解决办法]
int/int 结果是int ;float/int 结果就是float了
[解决办法]
是你最终输出的类型有问题,你的变量是float类型的,结果却按照Int型的来输出了