#include<stdio.h>
int main()
{
int a,b,c,d,e,f;
scanf("%d %d",&a,&b);
c=a+b;
d=a-b;
e=a*b;
f=a/b;
printf("a + b = %d\na - b = %d\na * b = %d\na / b = %.2f\n",c,d,e,f);
return 0;
}
这个代码提交系统说答案错误,但是我不知道怎样改,请各位大佬教教我。
直接a/b得到的是整数, 先转成float再除
如
((float)a/b)
或
(a+0.0)/b
你这里的a和b都是int型的,相除的话会直接向下取整,而不是有小数位,必须按照楼上说的那样,强制类型转换就正确了。
除法可以改为a*1.0/b
把f定义成float类型的就好了啊
最好把a,b,c,d,e,f都初始化一下比较好,而且f不能定义为int类型,最好为double类型,double的初始化也要注意
#include
int main()
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
double f = 0.0;
scanf("%d %d",&a,&b);
c=a+b;
d=a-b;
e=a*b;
f=a/b;
printf("a + b = %d\na - b = %d\na * b = %d\na / b = %.2f\n",c,d,e,f);
return 0;
}
#include
int main()
{
int a,b,c,d,e,f;
scanf("%d %d",&a,&b);
c=a+b;
d=a-b;
e=a*b;
f=a/b;
printf("a + b = %d\na - b = %d\na * b = %d\na / b = ",c,d,e);
if(a%b==0)
{
printf("%d\n",f);
}
else
{
printf("%.2f\n",a*1.0/b);
}
return 0;
}