C语言 输出数字三角形

请编写一个程序,输入首数字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)
输入:行数首数字
输出:数字三角形

C程序:

#include "stdio.h"

/* X:首数字,N:行数 */

void display(int X, int N)

{

int i, j;

for(i=0; i<N; i++)

{

/* è¾“出每一行的前导空格 */

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");

}

}

void main()

{

int X, N;

printf("input first figure : ");

scanf("%d", &X);

printf("input rows : ");

scanf("%d", &N);

display(X, N);

}

运行测试:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-27

#include "stdio.h" 
int main() 
{int n,i,j,k=0,a[20][20]; 
 scanf("%d",&n);
 for(j=0;j<n;j++)
   for(i=0;i<n-j;i++)
     a[i][j]=++k; 
 for(i=0;i<n;i++)
   {for(j=0;j<n-i;j++)
      printf("%d ",a[i][j]); 
    printf("\n");
   }
 return 0;  
}

第2个回答  2011-06-10
#include<stdio.h>
#define n 5
#define x 5
int main()
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n-1-i;j++)
printf(" ");
for(j=i+x;j<=i+i+x;j++)
printf("%2d",j);
for(j=i+i+x-1;j>=i+x;j--)
printf("%2d",j);
printf("\n");
}
return 0;
}追问

提示说输出有误了。。。。

追答

我电脑运行情况:
5
6 7 6
7 8 9 8 7
8 9101110 9 8
910111213121110 9
请按任意键继续. . .

追问

是格式的问题吧- - 而且貌似要求要输入的。。。

追答

#include
int main()
{
int i,j;
int n,x;
scanf("%d%d",&n,&x);
for(i=0;i=i+x;j--)
printf("%3d",j);
printf("\n");
}
return 0;
}

相似回答