C语言编程:编程打印杨辉三角形,行数由键盘输入,且以等腰三角形形式打印出来

如题所述

来个热乎的,刚写的

#include <stdio.h>
int main()
{
int line;
int i;
int j;
int k;
int yh1[100]={1},yh2[100]={1};//两个数组分别存储第i行和第i-1行数字序列,并交替使用
int *y1=yh1,*y2=yh2,*t;
printf("Please input lines:");
scanf("%d",&line);
for( i=0;i<line;i++)
{
for(k=1;k<line-i;k++)
{
printf("  ");//输出空格
}
for( j=0;j<i;j++)//计算并输出第i行数字
{
printf("%4d",y2[j]);
y2[j+1]=y1[j]+y1[j+1];
}
printf("%4d\n",y2[j]);
t=y2;y2=y1;y1=t;//交替使用数组
}
return 0;
}

追问

不使用指针

追答

从百科里面找的代码改动了一点

#include<stdio.h>
int main()
{
    int a[20][20],i,j;
int line;
printf("Please input lines:");
scanf("%d",&line);
    for(i=0;i<line;i++)
    {
        for(j=line;j>=i;j--)
            printf("  ");
        for(j=0;j<=i;j++)
        {
            if(i==j||j==0)
                a[i][j]=1;
            else
                a[i][j]=a[i-1][j]+a[i-1][j-1];
            printf("%4d ",a[i][j]);
        }
printf("\n");
    }
    return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言编程题 :打印出杨辉三角(十行)
C语言程序:include <stdio.h>#define ROW 10void main(){int arr[ROW][ROW];int i, j;for(i=0; i<ROW; i++)for(j=0; j<=i; j++)if(j==0 || i==j)arr[i][j] = 1;elsearr[i][j] = arr[i-1][j-1] + arr[i-1][j];for(i=0; i<ROW; i++){for(j=0;...

怎么用C语言编写等腰三角形的杨辉三角
for(j=1;j

如何用c语言实现打印杨辉三角形
1、首先打开vs2014,新建一个项目。2、新建一个main文件,添加头文件。3、添加main函数。4、接下来选择定义i,j变量。5、定义一个int数组。6、用for循环给数组a赋值。7、用for循环打印杨辉三角。

用c语言编写,输出杨辉三角形
include <stdio.h> void main(){ int a[21],i,j,n ;scanf("%d",&n);printf("\\n");a[0]=1 ;for(i=0;i<=n;i++) \/\/n用来控制要输出的杨辉三角的行数 { for(j=1;j<=40-3*i;j++) \/\/第i行前面的空格个数为40 - 3*i,为了显示更加美观而已 printf(" ");for(j=...

C语言,输出杨辉三角
修改:#include"stdio.h" void main(){int a[10][10],i,j;for(i=0;i<=9;i++){ a[i][0]=1;\/\/原代码此处需修改,第一位数为1 a[i][i]=1;}for(i=1;i=9;i++)for(j=1;j<i;j++)\/\/原代码此处需修改 a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<=9;i...

c语言问题,求杨辉三角
在探讨如何使用C语言实现杨辉三角时,我们可以先明确其定义。杨辉三角是一个等腰三角形排列的数字数组,每一行的数字都与组合数紧密相关。以二维数组的方式进行实现,每一项都等于上一行的左边和中间的两个数的和。具体实现代码如下:我们定义一个二维数组`a[100][100]`来存储杨辉三角的每一项。接下来,...

如何用C语言循环输出杨辉三角?
while(n<=0||n>=13){ \/*控制打印的行数不要太大,过大会造成显示不规范*\/ printf("请输入要打印的行数:");scanf("%d",&n);} printf("%d行杨辉三角如下:\\n",n);for(i=1;i<=n;i++)a[i][1] = a[i][i] = 1; \/*两边的数令它为1,因为现在循环从1开始,就认为a[...

C语言编写程序,打印一个7行的杨辉三角形
include<stdio.h> defineN7\/\/以7行7列为例 intmain(){ inta[N][N];\/\/N行N列的杨辉三角 inti,j;for(i=0;i<N;i++)\/\/先赋值两边 { a[0]=1;a=1;} for(i=2;i<N;i++)\/\/计算中间的数值 { for(j=1;j<i;j++)a[j]=a[i-1][j-1]+a[i-1][j];} for(i=0;i<N...

谁能告诉一下用循环队列实现打印杨辉三角形的C语言代码?
SeqQueue q(n+2); \/\/队列初始化p121 q.EnQueue(1); q.EnQueue(1);int s = 0, t;for (int i = 1; i <= n; i++) { \/\/逐行计算 cout << endl;q.EnQueue(0);for (int j = 1; j <= i+2; j++) { \/\/下一行 q.DeQueue(t);q.EnQueue(s + t);s = t...

C语言 | 打印杨辉三角
在C语言中,我们可以通过编程实现打印杨辉三角。这个经典问题可以分解为三个步骤来理解。首先,处理三角形中的特殊数字,即每行的首尾元素都是1,这部分是赋值的基础。 其次,中间的数通过数学公式计算得出,它们的值取决于上一行的相邻元素。 最后,将这些赋值后的二维数组按行进行遍历,并以图形...

相似回答