{char c1='a',c2='b',c3='c',c4='\101',c5='\106';
printf("a%c b%c\t c%c\t abc\n",c1,c2,c3);
printf("\t\b%c %c",c4,c5);
}
在第三步中,为什么运行的结果是aa空格bb三个空格c六个空格abc,也就是aa bb cc abc
那位大侠能否给小弟详细讲解一下,我只能得出a b c abc
a %c
↑↑
a a 这回明白了,谢谢了
我比较笨
//客气点嘛,何必才开腔就开枪?LZ言者无罪
char c1='a',c2='b',c3='c',c4='\101',c5='\106';
printf("a%c b%c\t c%c\t abc\n",c1,c2,c3);
分开说"a%c"与c1配合,连出2个a,因为c1='a'
同理,"b%c"与c2配合,连出2个b,因为c2='b'
同理,"c%c"与c3配合,连出2个c,因为c3='c'
至于符号"\t"嘛,不过是为制造若干个空格用的
printf("\t\b%c %c",c4,c5);
c4='\101'属于'\ddd'模式,表示8进制下的101
所对应的ASCII字符,说白了就是'A'
c4='\106'属于'\ddd'模式,表示8进制下的106
所对应的ASCII字符,说白了就是'F'
[此贴子已经被作者于2006-5-2 9:41:17编辑过]
x+a%3*(int)(x+y)%2/4
设x=2.5,a=7,y=4.7
1. x+y=2.5+4.7=7.2
2. (int)(x+y)=7 //屁股".2"切掉了
3. (int)(x+y)%2=1
4. (int)(x+y)%2/4=0//整÷整=整!!!
5. ........................
唉,书上没写这种情况呀
(float)(a+b)/2+(int)x%(int)y
a=2,b=3,x=3.5,y=2.5
(float)(a+b)/2=0.000000
(int)x%(int)y=3%2=1
哪里又有问题了?正确结果是3.5
main()
{int a,b;
float x,y;
a=2;
b=3;
x=3.5;
y=2.5;
x=(float)(a+b)/2+(int)x%(int)y;
printf("%f\n",x);
}
这样写对吗?
这样写的结果是3.500000
[此贴子已经被作者于2006-5-2 10:17:17编辑过]