C语言:数字金字塔

题目:

输出n行数字金字塔。

要求

1、使用下面的函数

void pyramid(int n);
//说明:n是用户传入的参数。

2、每个数字后面跟一个空格
3、最后一行的第一个数字前无空格

输入输出样例

在这里插入图片描述
----------------------------------------------------------------分割线-----------------------------------------------------------------------------

解题:

解题思路:

(1)可以将这个图形分成两个部分,黑色三角形部分由空格组成,橙色三角形部分数字和空格组成,如下图。
在这里插入图片描述

(2)先将由空格组成的黑色三角形输出
(3)再将橙色三角形部分输出

代码如下
#include <stdio.h>
//函数声明
void pyramid( int n );

int main()
{    
    int n;

    scanf("%d", &n);
    pyramid(n);
    
    return 0;
}

//函数部分
void pyramid(int n){
	int i,j;
	int count=1;
	//控制行数 
	for(i = 1; i<=n; i++){
		//count用来控制换行
		count++;
	    //输如黑色三角形部分,输出每行第一个数字之前的所有空格,例如5层金字塔,则第一行有4空格,第二行有3个空格,依次类推,最后一行则无空格。
		for(j = n-1-i; j>=0; j--){
			printf(" ");
		}
		// 到第几行就输出对应的数字,第一行输出1,第二行输出2 
		for(j = 1; j<=i; j++){
			//每个数字后都带空格 
			printf("%d ",i);	
		}
		if(count<=n)
     	printf("\n");
	}

}

解题过程遇到的问题及解决措施
  • 始找不到输出前面空格的方法,当把那副图随意涂涂改改后,意外发现它居然可以被分成两个三角形部分,我真是太机智了,φ(>ω<*),哈哈哈。

-------------------------------------------------------这也是条分界线---------------------------------------------------------------------------

我今天的感悟:

得到别人的认可真的对我很重要,无论是陌生人还是熟人,他们所带来的一个赞,一条评论,就像是给我写文章付的工钱一样,哈哈哈,就像今天我的某篇文章被夸赞收藏,令我高兴兴奋了很久一样,愿我们我们都能努力向前,坚持所想坚持的事情,能够被别人所认可,这也就值得了。

  • 38
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值