不是运算符取整,之所以取整的原因是,类型转换!数据类型的转换一般分为隐含转换和强制转换两种;隐含转换 算术运算符 关系运算符 逻辑运算符赋值运算符等二元运算符要求两个运算符的类型一致,算术运算 关系运算中参与运算的类型不
我不会~~~但还是要微笑~~~:)
先计算x+y=8.5 5*8.5=42.5i-=42.5<=>i=i-42.5=-39.5i输出是整形所以就是-39
你的输出函数
这和你变量的定义有关,你的j和i是int型的,那第一个++x后是3.5后再乘5是17.5,这是因为j是int型,所以就四舍五入了,j就变为17,然后3-17=-14,5.0+(-14)=-9.0,改法可以把j和i改为double或float 剩下的基本可以类推吧,就是决定数字的值的不是计算的结果,是它本身的类型 第四个是一个强制转换,把x和y都转换为int型,所以x的值是2,y的值是5,2/5的值是0,再加5就是5了 基本就这样了,如果不懂可以再追问
C语言字符都能作为数来计算,C语言规定 'A' 为 65,'B'为66,'C' 、'D'、'E'.依次加1,小写'a'为97,'b'为98小写比大写字母大32;比如'a'='A'+32=97,其他字母都是.所以a是可以算出来的,值为'a',97.char a
(float)(x) = 5.000000 2/(float)(x)= 2/5.000000 = 0.400000 (int型与float型相除,为float型) 3/(x) = 3/5 = 0 (整数相除只取商的部分) 0.400000 + 0 = 0.400000 (因为float + int 型为float型)
#include<stdio.h> main() { char ch='b'; int i=3,j=5; float x=22.354,y=435.6789; printf("ch=%c.ASCII=%d\n",ch,ch); printf("i=%d j=%d\n",i,j); //中间有六个空格 printf("x=%0.2f y=0.2f\n",x,y); //中间三个空格 } 大概就是这个样子吧
不能这样写,y=2*x也要注意类型转换的问题
/* ch = b, ASCII = 98 i = 3, j = 5 x = 22.35,y = 435.68 Press any key to continue*/#include <stdio.h> int main() { char ch = 'b'; int i = 3,j = 5; double x = 22.354,y = 435.6789; printf("ch = %c, ASCII = %d\n",ch,ch); printf("i = %d, j = %d\n",i,j); printf("x = %.2lf, y = %.2lf\n",x,y); return 0; }