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

(爱问答)

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

#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个"*"

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

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

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?