关于int a= 10 ; int b = 3 ; printf("%f\n",a/b)无法输出的问题
定义变量一般使用的是“ 类型 名称 ”的格式,例如:int a
而在使用printf输出时的对应如下:
- %d 对应 int
- %lld 对应 long long
- %f 对应 float
- %lf 对应 double
- %c 对应 char
下面是一串代码,要求输出a+b与a/b
#include<stdio.h>
int main()
{
int a = 10 ;
int b = 3 ;
printf("%d\n",a+b);
printf("%f\n",a/b);
return 0;
}
得到一个输出:
此时发现计算a+b的数值是正确的,但是a/b的数值却是0.000000
原因是用整数除以整数,结果应依然是整数,即代码应该更改为printf("%d\n",a/b)
#include<stdio.h>
int main()
{
int a = 10 ;
int b = 3 ;
printf("%d\n",a+b);
printf("%d\n",a/b);
return 0;
}
输出结果为
若想保留后边的小数,则有两种方式:
①强转
即将ab定义为double型变量
printf("%lf\n",(double)a/(double)b)
即
#include<stdio.h>
int main()
{
int a = 10 ;
int b = 3 ;
printf("%lf\n",(double)a/(double)b);
return 0;
}
输出为
此时默认保留小数点后六位,若想保留其他数位,则需要将代码改为
printf("%.2lf\n",(double)a/(double)b)
②定义一个double变量,即
double a1=10.0;
double b1=3.0;
printf("%lf\n",a1/b1);
在c语言中,“=”为赋值,“==”为等号