C语言程序小问题
#include "stdio.h"main()
{
int i,j;
printf("\1\1\n");
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
那位高手给我讲解一下 特别是怎么定义行列还有%c为什么只有两个,以及\1为啥表示笑脸
#include "stdio.h"main()
{
int i,j;
printf("\1\1\n");
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
那位高手给我讲解一下 特别是怎么定义行列还有%c为什么只有两个,以及\1为啥表示笑脸
答案:这个程序有个for循环的嵌套。#include "stdio.h"
main() //定义一个主函数入口
{
int i,j; //定义两个循环变量
printf("\1\1\n"); //输出两个笑脸字符,因为笑脸字符对应的ASCII码是1,具体是不是你的查下C语言书我也不记得了。
for(i=1;i<11;i++) //第一个for循环,给i赋初值1,条件是i<11,每循环一次i自加1,意思这个循环会循环10次。
{
for(j=1;j<=i;j++) //第二个for循环,给j赋初值1,条件是j<=i,就是当j>i的时候这个循环终止,每循环一次j自加1。
printf("%c%c",219,219); //输出ASCII码为219对应的字符,而且是两个,%c是输出字符,%d是输出整数,等等这些C语言书上有介绍。
printf("\n"); // \n 是换行或者叫回车。
}
}
假设219对应的符号是一个 星 的 1对应的是笑脸的话,那么这段代码会首先输出两个笑脸,然后换行开始输出第一行一个星,第二行两个星 第三行三个星,以此类推第十行十个星这么一个斜三角形的图案。为什么只有10行呢,因为第一个for循环的i最大也就是10,所以只有10行。
%c应该是占位符,两个是因为代表两个变量,就是后面的219,219,意思就是输出219219'\1'输出的是ASCII值为1的字符,就是小笑脸;'%C'只用了两个,是因为每次输出两个ASCII值为219的字符,输出的个数由双层循环来控制.上面二楼 说的 是对啊。。
'\1'输出的是ASCII值为1的字符
%C,,是一个控制输出格式,,即输出的是一个字符,,而后面的是 219,,即输出ASCII 值
219 的 字符。。 假如那个219 改为 65,则输出的是字母A