二维数组遍历+指针函数传参实现杨辉三角

函数目标:打印杨辉三角;
解题思路一:以二维数组的形式输出有数字的部分;
1 获取输出行数;
2 给该赋值为1的地方赋值为1;
3 计算其他非0非1的值,并赋值;
4 打印杨辉三角
在这里插入图片描述

1 #include<stdio.h>
2
3 int print_yh(int (p)[19],int h,int l){
4 if(NULL ==p){
5 puts(“NULL pointer error.”);
6 }
7 int i,j;
8 for(i=0;i<h;i++){
9 for(j=0;j<l;j++){
10 if(p[i][j]){
11 printf("%d “,p[i][j]);
12 }
13 else{
14 printf(” “);
15 }
16 }
17 puts(”");
18 }
19 return 0;
20 }
21 int main(){
22 int arr[10][19] ={0};
23 printf(“please input line:”);
24 int n=0;
25 scanf("%d",&n);
26
27 int i=0;
28 for(i=0;i<n;i++){
29 arr[i][n-1-i]=1;
30 arr[i][n-1+i]=1;
31 }
32
33 int j=0;
34 for(i=2;i<n;i++){
35 for(j=n-1-i;j<n-1+i;j++){
36 if(arr[i-1][j-1]&& arr[i-1][j+1]){
37 arr[i][j]=arr[i-1][j-1]+arr[i-1][j+1];
38 }
39 }
40 }
41 print_yh(arr,n,2
n-1);
42 return 0;
43 }
函数解析:
函数名:print_yh
函数功能:打印杨辉三角;
函数参数:
/int (*p)[19]:p是一个数组指针,用来表示二维数组的首地址;
/int h:行数;
/int l:列数;

输出结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40632341/article/details/88989071