楊輝三角c語言程序一維數組
⑴ c語言:鍵入層數n(1~13),用13元素的一維數組,大致在屏幕中央列印出n層的金字塔形楊輝三角形,咋編
代碼文本:
#include "stdio.h"
int main(int argc,char *argv[]){
int y[13],i,j,n;
printf("Please input layer... n=");
if(scanf("%d",&n)==1 && n>0 && n<14){
for(i=1;i<=n;i++){
for(y[j=i-1]=1;j>1;y[j-1]+=y[j-2],j--);
for(j=0;j++<40-i-i;putchar(' '));//排版
for(j=0;j<i;printf("%4d",y[j++]));
putchar(' ');
}
}
else
printf("Input error, exit... ");
return 0;
}
⑵ c語言程序楊輝三角
在C語言中,楊輝三角是一個經典的動態數組應用實例。如果你之前使用的是固定長度的棧區數組,現在需要轉換成動態數組來實現。以下是相應的代碼段:
以下是使用動態數組實現楊輝三角的C語言代碼:
void main() {
int* a = malloc(sizeof(int) * 10); // 動態分配數組內存
a[0] = 1; // 初始化第一行
// 列印第一行
for (int i = 0; i < 10; i++) {
if (i == 0) { // 第一行只有一個1
printf("%4d", a[i]);
} else {
printf("%4d", a[i] + a[i - 1]); // 計算當前元素值
}
}
// 遞歸生成楊輝三角
for (int j = 2; j <= 10; j++) {
printf("\n"); // 換行進入新行
for (int i = j - 1; i >= 0; i--) {
if (i != 0) { // 非第一列元素計算
a[i] = a[i] + a[i - 1];
} else { // 第一列始終為1
a[i] = 1;
}
if (a[i] == 0) { // 輸出空格
printf("%4c", ' ');
} else {
printf("%4d ", a[i]);
}
}
}
free(a); // 釋放內存
system("pause"); // 停頓等待用戶操作
}
這段代碼展示了如何使用動態數組來生成和列印楊輝三角,通過遞歸計算每一行的元素值,並在每一行開始和結束時添加適當的空格。
⑶ C語言,輸出楊輝三角
#include<stdio.h>
#define N 10 //定義常量N,表示輸出N行楊輝三角的值
int main()
{
int i,j,a[N][N]={0};
printf("楊輝三角列表規律是每行的第一列和最後一列的值為1,其餘的值是例如第n行第m列的值=第n-1行第m列+第n-1行第m-1列\n");
for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)
{
if(j==0||i==j)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
printf("%d\t",a[i][j]);
}
printf("\n");//輸出列表是一個直角三角形
}
return 0;
}