描述
編程輸入一個正整數N,輸出楊輝三角的前N行,用二維陣列實作,先把各個數值存盤到陣列中,再輸出,????????????????????????????????????????????????????????????????????????????????????????????????
輸入
一個整數N,N<20,????????????????????????????????????????????????????????????????????????????????????????????????
輸出
按示例格式輸出,一行中整數之間隔一個空格,
代碼段
#include<stdio.h>
//主要思路:利用二維陣列,先在1個100*100的二維素組里全部存盤1
//再用楊輝三角的核心思想 a[i][j]=a[i-1][j-1]+a[i-1][j];
//(即每一項的陣列值等于這個陣列上一列的值+這個陣列上一行同時上一列的值)
//最后依次輸出,注意格式(用標記flat法)
int main(){
int i,j,n,flat=1;
int a[100][100];
scanf("%d",&n);//輸出想要顯示出楊輝三角的行數值
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=1;
}
}
for(i=1;i<n;i++)
{
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;i<n;i++)
{ flat=1;
for(j=0;j<=i;j++)
{
if(flat==1)
{printf("%d",a[i][j]);flat=0;
}
else
printf(" %d",a[i][j]);
}
printf("\n");
}
}
如果想要把資料居中,呈現出一下效果,可以繼續改善
以下代碼
#include<stdio.h>
//主要思路:利用二維陣列,先在1個100*100的二維素組里全部存盤1
//再用楊輝三角的核心思想 a[i][j]=a[i-1][j-1]+a[i-1][j];
//(即每一項的陣列值等于這個陣列上一列的值+這個陣列上一行同時上一列的值)
int main(){
int i,j,n,k;
int a[100][100];
scanf("%d",&n);//輸出想要顯示出楊輝三角的行數值
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=1;
}
}
for(i=1;i<n;i++)
{
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;i<n;i++)
{
for(k=0;k<26-6*i/2;k++)
printf(" ");
for(j=0;j<=i;j++)
{
printf("%6d",a[i][j]);
}
printf("\n");
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/374627.html
標籤:其他
上一篇:動規(6)-登山
