C语言输出n行n列星号
这是一个C语言 for 循环嵌套的示例:给定一个自然数 n,在屏幕输出 n 行 n 列图形(见图 1)。
	
图 1:输出结果
根据题意,总共输出 n 行,第 i 行中首先输出(n-i)个空格,然后输出 i 个
代码清单 1:输出由“*”构成的 n 行 n 列的图形
运行结果为:
图 2 展示了代码清单 1 在运行过程中变量 i 和 j 的变化情况。
	
图 2:代码清单 1 中变量 i 和 j 的变化情况
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
	
图 1:输出结果
问题分析
这是个打印图形问题,一般按行和列分别处理,找出每一行和每一列的规律,然后按行输出。根据题意,总共输出 n 行,第 i 行中首先输出(n-i)个空格,然后输出 i 个
*。用变量 i 控制循环 n 次,输出 n 行;用变量 j 控制循环(n-i)次,输出(n-i)个空格;继续用变量 j 控制循环 i 次,输出 i 个*。算法描述
	1) 输入 n 的值;
	2) 重复处理 n 行的操作(行号 i 从 1 至 n):
	重复处理 n 列的操作(列号 j 从 1 至 n-i):输出空格“ ”;
	重复处理 n 列的操作(列号 j 从 1 至 i):输出“*”;
	输出换行符(表示该行结束);
	3) 结束。
代码清单 1:输出由“*”构成的 n 行 n 列的图形
#include <stdio.h>
#include <stdlib.h>
int main( )
{
    int n,i,j;
    printf("输入一个整数:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)         //控制行的输出
    {
        for(j=1;j<=n-i;j++)  //控制列的输出
            printf(" ");    //每一列打印n-i个空格
        for(j=1;j<=i;j++)    //控制列的输出
            printf("*");    //每一列打印i个“*”
        printf("\n");        //当前行结束,输出换行符
    }
    system("pause");
    return 0;
}
运行结果为:
	输入一个整数:5
	    *
	   **
	  ***
	 ****
	*****
图 2 展示了代码清单 1 在运行过程中变量 i 和 j 的变化情况。

图 2:代码清单 1 中变量 i 和 j 的变化情况
知识点总结
- 如果想循环特定的次数,就使用嵌套的 for 循环语句。
- 想通过循环来递增或递减变量时,就可以使用 for 循环。
- 嵌套在内层的 for 循环语句要执行外层循环变量 i 所指定的次数。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
 
	