金字塔

请编写一个程序,输入首数字X和行数N,在屏幕上输出如下三角形:(呈金字塔形)
5
6 7 6
7 8 9 8 7
8 9 10 11 10 9 8
9 10 11 12 13 12 11 10 9   

(输入的首数字:5,行数为:5)
输入:行数首数字
输出:数字三角形

#include "stdio.h"
/* X:首数字,N:行数 */
void display(int X, int N)
{
   int i, j;

   for(i=0; i<N; i++)//0到N-1行 
   {
     /* 输出每一行的前导空格 */
     for(j=0; j<N-1-i; j++)
     printf("   ");

     /* 输出数字部分的前一半(0..i) */
     for(j=0; j<=i; j++)
     printf("%3d", X+i+j);

     /* 输出数字部分的后一半(0..i-1) */
     for(j=0; j<i; j++)
     printf("%3d", X+2*i-1-j);
     printf("\n");
   }
}
int main()
{
   int X, N;
   printf("input first figure : ");
   scanf("%d", &X);
   printf("input rows : ");
   scanf("%d", &N);
   display(X, N);
   return 0; 
}
#include <stdio.h>
int main()
{
    int i, j, a, b, c;

    printf ("请输入行数首数字:\n");
    scanf ("%d", &a);
    printf ("请输入行数:\n");
    scanf ("%d", &b);

    for (i = 0; i < b; i++) //控制行数
    {
        for (j = 0; j <= b - 1 - i; j++) //控制前面的空格
        {
            printf ("   ");
        }

        for (j = 0; j <= i; j++) //控制前一半的数
        {
            c = ++a;
            printf ("%3d", c - 1); //减一就可以从首数字开始计算
        }

        for (j = 0; j < i; j++) //控制后一半的数
        {
            c = --a;
            printf ("%3d", c - 1); //

        }
        printf ("\n");
    }
}

 

posted @ 2018-07-01 13:19  不负、  阅读(234)  评论(0编辑  收藏  举报