C语言:数字金字塔

题目:

输出n行数字金字塔。

要求

1、使用下面的函数

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

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

输入输出样例

C语言:数字金字塔_第1张图片
----------------------------------------------------------------分割线-----------------------------------------------------------------------------

解题:

解题思路:

(1)可以将这个图形分成两个部分,黑色三角形部分由空格组成,橙色三角形部分数字和空格组成,如下图。
C语言:数字金字塔_第2张图片

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

代码如下

#include 
//函数声明
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");
	}

}

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

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

我今天的感悟:

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

你可能感兴趣的:(C语言题集,c语言)