栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

demo18:C语言的一些小练习题9.

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

demo18:C语言的一些小练习题9.

9.分别用一维数组、二维数组两种不同的方法打印杨辉三角(前20行)

1)一维数组(使用滚动数组,从后往前更新值,边更新边输出!)

代码如下:

//1.一维数组实现
#include
#define N 20
int main(){
	int arr[N]={1};
	int i=0,j=0,k=0;
	for(i=0;ii;k--){
				printf(" ");
			}
		for(j=i;j>=0;j--){ //使用滚动数组!从后往前!更新值,边更新边输出
			if(j==0||j==i){
				arr[j]=1;
				printf("%d ",arr[j]);
			}
			else{
				arr[j]=arr[j]+arr[j-1]; //固定算法!! 
				printf("%d ",arr[j]);
			}
			
		}
		printf("n");
	}
	return 0;
}

ps:一维数组实现输出杨辉三角使用的方法相较二维数组更麻烦,希望大家仔细分析代码!

代码实现如下:

 

2)二维数组

代码如下:

//2.二维数组实现
#include
#define N 20
int main(){
	int i=0,j=0,k=0;
	int arr[N][N]={1,1};
	for(i=0;ii;k--){
			printf(" "); //控制每行前面的空格数(只是为了美观hhh)
		}
		for(j=0;j<=i;j++){
			if(j==0||j==i){
				arr[i][0]=arr[i][j]=1; //先赋值再输出,方便后续操作
				printf("%d ",arr[i][j]); //除第一行外,每行第一个和最后一个元素都是1
			}
			else{
				arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
				printf("%d ",arr[i][j]);
			}
		}
		printf("n"); //控制每输出一行就换行 
	}
	return 0;
}

ps:大家注意坚持好习惯定义数组大小用宏定义常量给出!(方便对数组大小做任何改变)

代码实现如下:

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429654.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号