首页 > 电脑

求解前三个为什么输出不同?第一个与最后一个输出一样?越详细越好

更新时间2018-03-06 19:38:05

#include<stdio.h>

#include<stdlib.h>

int main()

{

int a=1,b=3;

char c=10;

printf("%i%c%i",a,c,b);

system("pause");

return 0;}


#include<stdio.h>

#include<stdlib.h>

int main()

{

int a=1,b=3;

char c='10';

printf("%i%c%i",a,c,b);

system("pause");

return 0;}


#include<stdio.h>

#include<stdlib.h>

int main()

{

int a=1,b=3;

char c='10';

printf("%i%c%i",a,c,b);

system("pause");

return 0;}


#include<stdio.h>

#include<stdlib.h>

int main()

{

int a=1,b=3;

int c=10;

printf("%i%c%i",a,c,b);

system("pause");

return 0;}


char型和int型可以直接转换,只是char精度比较小,数字和字符的转换按照ASCII码

char c=10;表示c的值是ASCII码中的第十个符号

char c='10';其实是不对的,单引号中应该只有一个字符,我自己测试发现识别成'0'了

char c='10';加会把后面的数字识别成8进制数,这个就相当于char c=8;

1,(1)(4)结果一样,c语言中int和char数据类型是想通的;

2,(1)(2)(3)不同,三段程序中c的意义分别是:LF换行、所控制字符为10的ASCII、BS退一格,所以输出会在控制格式上有所不同。

第一个for循环是控制行数的,i就是当前行数第二个for循环是控制,呃,你可以理解成横坐标啦,j就是这个意思!第三个for循环还是控制横坐标的……第一行中间出现一个“*”,第一行,输出“*”的个数是2*1-1=1啊,这为什么会换行呢,因为每一行输出后都有cout<<endl;啊,对于每个i都会执行一次cout<<endl;,就是每行结束都会换行啊j<5-i就是计算每行前面应该打几个空格,j<=2*i-1就是应该打几个"*";例如第一行,输出5-1=4个空格,再输出2*1-1=1个"*"

上一篇:哪位大侠知道路由器挂光碟信号会变好

下一篇:磁不可访问盘分区如何解决?