新手改正
#include <stdio.h>void main()
{
double a,b,c;
a=1;
b=3;
c=1/3*3;
printf("%f\n",a);
printf("%f\n",b);
printf("%f\n",c);
}
帮忙看看哪错了,怎么改
将c=1/3*3改成c=1/3.0*3才会保留小数
因为c=1/3=0,不保留小数,c=1/3.0才保留小数
不信不可以看看c=1*3/3=1 #include <stdio.h>
void main()
{
int a,b;
double c;
a=1;
b=3;
c=1.0/3.0*3.0;
printf("%d\n",a);
printf("%d\n",b);
printf("%f\n",c);
}
#include <stdio.h>
int main()
{
double a,b,c;
a=1;
b=3;
c=1/3*3;
printf("%f\n",a);
printf("%f\n",b);
printf("%f\n",c);
} #include <stdio.h>
void main()
{
double a,b,c;
a=1;
b=3;
c=1.0/3*3;
printf("%f\n%f\n%f\n",a,b,c);
}
嘻嘻,1/3=0而1.0/3才会得到一个浮点型的值:big
所涉及到的知识点:
双目运算符两边的运算类型必须保持一致!运算符两端的类型不一致时,要把两边转换成相同类型后进行运算!
一般会把“低型”转换为“高型”比如此处(要想得到一个实型数→_→ 1/3两边都是整型,要得到一个实型数,的应把他们转换为实型再进行运算!1.0是实型,3是整型,实型“高于”整型,因此系统会自动把3转换为实型再与1.0进行运算,就得到一个实型的结果了♪(′▽`)) 本帖最后由 风之残月 于 2014-8-31 21:29 编辑
#include <stdio.h>
void main()
{
double a, b, c;
a = 1.0;
b = 3.0;
c = 1.0 / 3.0 * 3.0;
printf("%f\n",a);
printf("%f\n",b);
printf("%f\n",c);
}
c = 1 / 3 * 3,1 / 3 = 0,最后0 * 3 = 0,输出时以浮点方式显示就是0.000000,浮点型变量最好以浮点型方式表示 为什么不把,浮点数,改为整数呢? 把duoble改为int 把%f改为%d 赋值还是按照规则比较好,还有那个除法和乘法的优先级是同等的,是不是要在后面加个小括号 double 输出时最好用 %ld,
还有才c = 1 / 3.0 * 3
这样才对
页:
[1]