C语言:打印用 * 组成的X形图案

题目:

多组输入一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度

                    

 =========================================================================

                       

思路:

总体思路:

实际打印的是 n*n 的图案

只不过是当 行等于列(正斜线) 行+列=行数-1(反斜线) 打印 * 号

         

创建变量:

int n = 0; -- 输出的行数正斜线反斜线 长度

         

使用 while循环 进行 多组输入 

扫描二维码关注公众号,回复: 15598305 查看本文章

         

定义

int i = 0; --

int j = 0; --

         

使用 for循环 循环打印行i < n

内嵌for循环 循环打印列j < n

               

内嵌for循环如果

行等于列(正斜线)-- i == j

行+列 = 行数-1(反斜线)-- i+j == n-1

打印 * 号

否则打印 空格

           

打印一列就进行换行

                 


                

比较简单,直接一步到位:

(1).

创建变量:

int n = 0; -- 输出的行数正斜线反斜线 长度

         

(2).

使用 while循环 进行 多组输入 

         

(3).

定义

int i = 0; --

int j = 0; --

         

(4).

使用 for循环 循环打印行i < n

内嵌for循环 循环打印列j < n

               

(5).

内嵌for循环如果

行等于列(正斜线)-- i == j

行+列 = 行数-1(反斜线)-- i+j == n-1

打印 * 号

否则打印 空格

           

(6).

打印一列就进行换行

                     

实现代码:

#include <stdio.h>
int main()
{
	//创建变量:
	int n = 0; //输出的行数、正斜线、反斜线 的长度

	//多组输入,打印 x图案:
	while (scanf("%d", &n) == 1)
		//使用 while循环 进行多组输入
	{
		//定义 行和列:
		int i = 0; //行
		int j = 0; //列

		//使用 for循环 循环打印行:
		for (i = 0; i < n; i++)
		{
			//内嵌for循环 循环打印列:
			for (j = 0; j < n; j++)
			{
				//当 行等于列 或 行+列=行数-1 时打印 *号:
				if (i == j || (i+j == n-1))
					//i == j:x图像的正斜线
					//i+j == n-1:x图像的反斜线
				{
					printf("*"); //打印 *号
				}
				else
				{
					printf(" "); //打印空格
				}
			}

			//打印完一列后换行:
			printf("\n");
		}
	}

	return 0;
}

实现图片:

                    

最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{
	//创建变量:
	int n = 0; //输出的行数、正斜线、反斜线 的长度

	//多组输入,打印 x图案:
	while (scanf("%d", &n) == 1)
		//使用 while循环 进行多组输入
	{
		//定义 行和列:
		int i = 0; //行
		int j = 0; //列

		//使用 for循环 循环打印行:
		for (i = 0; i < n; i++)
		{
			//内嵌for循环 循环打印列:
			for (j = 0; j < n; j++)
			{
				//当 行等于列 或 行+列=行数-1 时打印 *号:
				if (i == j || (i+j == n-1))
					//i == j:x图像的正斜线
					//i+j == n-1:x图像的反斜线
				{
					printf("*"); //打印 *号
				}
				else
				{
					printf(" "); //打印空格
				}
			}

			//打印完一列后换行:
			printf("\n");
		}
	}

	return 0;
}

实现效果:

猜你喜欢

转载自blog.csdn.net/weixin_63176266/article/details/131464623
今日推荐