double c=a/b在(a<b)时为什么总是0
来源:百度知道 编辑:UC知道 时间:2024/05/09 07:57:56
#include"stdio.h"
void main()
{
int a,b;
printf("Please input variables a and b:");
scanf("%d %d",&a,&b);
if(a>=b)
printf("The result of c=a*b is:%d\n",a*b);
else
{
double c=a/b;
printf("The result of c=a/b is:%5.2f\n",c);
}
}
void main()
{
int a,b;
printf("Please input variables a and b:");
scanf("%d %d",&a,&b);
if(a>=b)
printf("The result of c=a*b is:%d\n",a*b);
else
{
double c=a/b;
printf("The result of c=a/b is:%5.2f\n",c);
}
}
double c=a/b 这句语句在执行时,计算机先将a、b的值代入计算,得到的是一个int型数值;再将这个int型数值结果转换为double型。那么当a<b时,计算机用int型数据计算时,得到的结果当然是0;再将这个“0”转换为double型赋给c,不难理解c的值其实也是0。
正确的语句ls已经给出,即先将a、b转换为double型,再进行除法运算并赋给c。
恩~
int a, b; => double a, b;
或者:
double c = a / b; => double c = (double)a / (double)b;
/符号是取整的,用取余符号
x=Double.valueOf(a).doubleValue();是什么意思
已知:char a;int b;float c;double d;执行语句c=a+b+c+d;后,变量c的数据类型是( )
已知 char a; int b; float c; double d; 执行语句c=a+b+c+d;后,变量c的数据类型是?
现在有以下定义,int a;double b;float c;char k;则下面的表达式a/b+c-k值的类型为:
double a是什么公司
若有:char a; int b;float c,double d;则a*b+d-c值的类型是什么啊?
float,double,赋值时候为什么要加f,d.例如:double a=0.1d;float b=0.2f;
main(){double a=1.1;printf("%d",a)}为什么显示是零?
(a+b)/c=(a+c)/b=(b+c)/a =2(a+b+c)/
已知a+b-c/c=a-b+c/b=-a+b+c/a