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

目录

一、程序概述

二、图解

三、核心逻辑详解

打印结果:


一、程序概述

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

二、图解

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

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

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

#include <stdio.h>
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时,在另一条对角线上打印星号。

打印结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普通young man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值