杨辉三角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;
}