C语言的运算,急急急!

来源:百度知道 编辑:UC知道 时间:2024/07/01 00:38:35
#include <stdio.h>
main()
{
int a=5, b=7, c=9;
int x, y;
float z;

x=a+b; //赋值表达式
y=c/a; //赋值表达式
z=(x+y)*(x/c); //赋值表达式

printf("x=a+b => &d\n",x );
printf("y=c/a =>&d\n", y);
printf("z=(x+y)*(x/c) =>&f\n",z );
}
-----------------------------------------
输出结果 x=a+b=>12
y=c/a=>1
z=(x+y)*(x/c)=>13.000000

z=>13是怎么算出来的,麻烦具体点!

z=(x+y)*(x/c)=(12+1)*(12/9)

12/9,由于12和9都是int型整数,所以/此时为取整操作,12/9等于1

所以上式:
z=(x+y)*(x/c)=(12+1)*(12/9)=13*1=13

#include <stdio.h>
main()
{
int a=5, b=7, c=9;
int x, y;
float z;

x=a+b; //x=5+7=12;
y=c/a; //y=9/5=1;(int型只取整)
z=(x+y)*(x/c); //z=(12+1)*(12/9)=13*1=13;(int型只取整)

printf("x=a+b => &d\n",x );
printf("y=c/a =>&d\n", y);
printf("z=(x+y)*(x/c) =>&f\n",z );
}

给你了,每一步都在题里,\\后面,自己看看,%f是输出小数,想要十三最好换成%d或%0.f

就是这么多了

x=a+b=12
y=c/a=9/5=1
z=x+y=13
因为是&f,所以打印输出13.000000

z=(x+y)*(x/c)=>13.000000 =>z=13*1
再把13强制转化成浮点型
因为你上面的Z定义的是float类型
float 类型好像是8位数的

所以....

通过上面的运算我们可以得到z的值是13,而
printf("z=(x+y)*(x/c) =>&f\n",z ); 语句中有&f就是要求z以单浮点型类型输出,所以输出的结果就是z=(x+y)*(x/c)=>13.000000 (单浮点型输出保留6位小数)

因为printf(&quo