文章目录
前言
我们把杨辉三角变换成类似数学坐标系一样的图像。这样就可以拿数组来保存数据。
一、初始化
1.头文件表示
#define ROW 200
#define COL 200
2.定义一个二维数组
int a[ROW][COL] ={0};
二、定义需要的行数
int lands=0;
printf("打印行数:>");
scanf("%d",&lands);
//后面的打印数组,需要从新的一行开始
printf("\n");
三、设计函数
1.定义每列最后一个和第一个赋值1
主函数
Start_End(a,lands);
函数
void Start_End(int a[ROW][COL],int lands)
{
int y,x;
for(y=1;y<=lands;y++)
{
for(x=1;x<=y;x++)
{
if( x==1 || y==x)
{
a[y][x]=1;
}
}
}
}
2.中间的赋值
主函数
Midlle(a,lands);
函数
void Midlle(int a[ROW][COL],int lands)
{
int y,x;
for(y=3;y<=lands;y++)
{
for(x=1;x<y-1;x++)
{
a[y][x+1]=a[y-1][x]+a[y-1][x+1];
}
}
}
3.打印数组,得到杨辉三角图形
主函数
print(a,lands) ;
函数
void print(int a[ROW][COL],int lands)
{
int y,x;
for(y=1;y<=lands;y++)
{
for(x=1;x<=y;x++)
{
printf("%4d ",a[y][x]);
}
printf("\n");
}
}
总结
不是三角形啊!怎么弄的??
先赞后看,养成习惯!!! ^ _ ^ ❤️ ❤️ ❤️
代码
#include<stdio.h>
#define ROW 200
#define COL 200
void Start_End(int a[ROW][COL],int lands);
void Midlle(int a[ROW][COL],int lands);
void print(int a[ROW][COL],int lands);
int main()
{
//初始化
int a[ROW][COL] ={0};
//设置多少行
int lands=0;
printf("打印行数:>");
scanf("%d",&lands);
printf("\n");
//定义每列最后一个和第一个赋值1
Start_End(a,lands);
//中间的赋值
Midlle(a,lands);
//打印数组
print(a,lands) ;
return 0;
}
void Start_End(int a[ROW][COL],int lands)
{
int y,x;
for(y=1;y<=lands;y++)
{
for(x=1;x<=y;x++)
{
if( x==1 || y==x)
{
a[y][x]=1;
}
}
}
}
void Midlle(int a[ROW][COL],int lands)
{
int y,x;
for(y=3;y<=lands;y++)
{
for(x=1;x<y-1;x++)
{
a[y][x+1]=a[y-1][x]+a[y-1][x+1];
}
}
}
void print(int a[ROW][COL],int lands)
{
int y,x;
for(y=1;y<=lands;y++)
{
for(x=1;x<=y;x++)
{
printf("%4d ",a[y][x]);
}
printf("\n");
}
}
码字不易,大家的坚持就是我坚持下的动力,点赞后,不要忘记关注我哦!