C新手问题,超级简单啦

来源:百度知道 编辑:UC知道 时间:2024/09/25 11:45:17
现在定义了一个int a=12300,c;
一个double b=45.0;

c=a+b

怎么写才能把c算出来?
要求显示的c的值要2种,一种是int形式的,一种是double形式,分开写。
谢谢各位,一直在这里迷惑,不知怎么转换。。。哎。。

int形式的:
main()
{
int a=12300,c;
double b=45.0;
c=a+b;
printf("%d",c);

}
------------------------------------------------------
double形式的:
main()
{
int a=12300,c;
double b=45.0;
c=a+b;
printf("%f",(double)(c));

}

int c = a + (int)b;
这样的c就是int型的

double c = a + b;
这样的c就是double型的

C语言中,double的级别比int高,所以从int转换到double可以自动转换,只要加号两边有一个double,结果就会变成double的。但是从double转换为int需要写明,例如(int)b就是把b转换为int型。

显示的时候,如果c是int的,这样显示:
printf("%d",c);
如果c是double的,这样显示:
printf("%f",c);

main()
{
int a=12300,b;
double b=45.0;
c=a+b;——C语言运算中,会先自动进行格式转换,把INT类型转换为DOUBLE。所以这里的C是DOUBLE类型的。
printf("%d,%f",(int)c,c);——前者使用强制类型转换(int)输出INT类型的C,后者直接输出C,即DOUBLE类型的C。
return 0;
getch();
}

用强制类型转换;
在你现在的程序中,c算出来的值就已经是double型的了。
如果你要int型的,用强制类型转换一下。
如c=int(c)。