求解前三个为什么输出不同?第一个与最后一个输出一样?越详细越好
#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个"*"
下一篇:磁不可访问盘分区如何解决?