C语言打印“X”形图案的程序分析及实例展示

目录

一、程序概述

二、图解

三、核心逻辑详解

打印结果:


一、程序概述

        本段C代码实现了一个功能,即读取用户输入的一个整数x,并基于这个数值打印出一个在2D数组表示下呈“X”形状的字符矩阵。程序通过标准输入(scanf)接收数据,并在控制台输出相应的图形。

二、图解

主对角线的位置:第0行第0列;第1行第1列;第2行第2列;

C语言打印“X”形图案的程序分析及实例展示_第1张图片

反对角线位置:第0行第9列;第1行第8列;(0,9)(9+0 == 10-1)

C语言打印“X”形图案的程序分析及实例展示_第2张图片

由这个逻辑,我们代码就可以这样写

#include 
int main() {
	int x;
	while (scanf("%d",&x) != EOF) { // 注意 while 处理多个 case
		for (int i = 0; i < x; i++)
		{
			for (int j = 0; j < x;j++) {

				if ((i == j)||(i+j == x - 1) )
				{
					printf("* ");
				}
				else
				{
					printf("  ");
				}

			}
			printf("\n");
		}

	}
	return 0;
}

三、核心逻辑详解

  • 读取输入: while (scanf("%d",&x) != EOF) 表示程序会持续读取用户的输入,每次读取一个整数x,直到文件结束。
  • 打印“X”形图案: 在循环内部,使用嵌套的两层for循环遍历一个大小为x×x的区域:
for (int i = 0; i < x; i++) {
    for (int j = 0; j < x; j++) {
        // 判断条件并打印对应字符
    }
    printf("\n"); // 每完成一行打印后换行
}
  • 条件判断与字符输出: 内部的条件语句决定是否打印星号*(代表“X”形状)或空格:
if ((i == j) || (i + j == x - 1)) {
    printf("* "); // 当满足特定条件时打印星号
} else {
    printf("  "); // 否则打印两个空格
}

这里的条件 (i == j) 和 (i + j == x - 1) 分别决定了两种情况:

  • 第一种情况:当行索引i等于列索引j时,在对角线上打印星号。
  • 第二种情况:当行索引i和列索引j之和等于x - 1时,在另一条对角线上打印星号。

打印结果:

C语言打印“X”形图案的程序分析及实例展示_第3张图片

你可能感兴趣的:(c语言,c语言,开发语言)