【C语言】第五十三题→输入数字,用※号打印菱形。

100 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情

👋『大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流>』
✔「life motto」⇢ 种一棵树最好是十年前⇿其次是现在👌
📝<juejin>个人主页謓泽 的个人主页 - 文章 - 掘金 (juejin.cn)
📚<系列专栏>⇥【C语言】Topic - 謓泽的专栏 - 掘金 (juejin.cn) 🏆2021年度博客之星物联网与嵌入式开发TOP5 2021博客之星Top100 阿里云专家博主^星级博主 CSDN⇿掘金⇿InfoQ[创作者]

前言

美好的一天,从刷题开始。又是新的一天,努力!

题目描述

输入数字,用※号打印菱形。

题目分析

做这种题目一定要用代入法和找它的规律。我们可以假设输入数字5,来观察运行结果从而找到规律。

    ※
   ※※
  ※※※
 ※※※※
※※※※※
 ※※※※
  ※※※
   ※※
    ※

上述是假设我们输入数字5的运行结果。 首先,当我们看这种程序我们可以假设分为上半轴部分和下半轴的部分。这样有利于我们更好的解题。关键的核心点就在于我下面讲的这个,如果你能一看这个题目想要这个方法说明你的逻辑思维还算可以的。

//上半轴
    ※
   ※※
  ※※※
 ※※※※
※※※※※  
//下半轴
 ※※※※
  ※※※
   ※※
    ※

先实现上半轴的部分,再来实现下半轴的部分。其实思路明确起来写代码也就很容易了。

这种代码如果你并没有一个很好的思路的话,不妨一边打代码一边去调试运行下。这样可能你做着做着就跟着思路走了,这种其实就是调试在引导这里,加上你自己的思路也在跟上。

题目代码​

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
	int input = 0;
	printf("请输入数字:");
	scanf("%d", &input);
	int i = 0;
	//上半轴部分
	for (i = 0; i < input; i++)
	{
		int j = 0;
		for (j = 0; j < input - i - 1; j++)
		{
			printf(" ");//打印空格(1)
		}
		for (j = 0; j < i + 1; j++)
		{
			printf("※");//打印星号(2)
		}
		printf("\n");
	}
}
//	//下半轴部分
	for (i = 0; i < input - 1; i++)
	{
		int j;
		for (j = 0; j <= i; j++)
		{
			printf(" ");//打印空格(1)
		}
		for (j = 0; j < (input - 1) - i; j++)//这里注意下优先级大小
		{
			printf("※");//打印星号(2)
		}
		printf("\n");
	}
	return 0;
}

运行结果

运行结果🖊

请输入数字->:5

    ※
   ※※
  ※※※
 ※※※※
※※※※※
 ※※※※
  ※※※
   ※※
    ※

最后

这道题目实际上难度是不大的,主要就是考察一个逻辑思维的能力,这种题目实际上就是多做题目,多做代码就可以了,逻辑思维能力都是靠刷题培养出来的。