动态数组打印杨辉三角
来源:互联网 发布:淘宝购物车排序 编辑:程序博客网 时间:2024/05/22 05:19
一般情况下,我们习惯性的将数组定义为静态数组,例如int arr[3][6];
当数组大小需要随时改变的时候,对于静态数组,我们需要在main函数下去修改数组的大小,这样反复修改很麻烦,动态数组(malloc)使得数组可以随意改变,
静态数组——在栈上申请的内存空间
动态数组——在堆上申请的内存空间,堆上的空间,在C语言中 ,内存空间由程序 员按需申请,必须由程序员主动释放,如果不释放,会造成内存泄露的问题。
例如;
int n=10;int **mem=(int**)malloc(sizeof(int*)*n)//表示mem数组申请了十个内存空间,内容为十个指针(int*),然后给每个(int*)申请空间
一:直角三角形
#include <stdio.h>#include<stdlib.h>#include<malloc.h>#include <assert.h>void show_yanghui(int n){ assert(n>0); int **mem = (int **)malloc(sizeof(int*)*n); if (mem==NULL)//判断是否申请内存成功 { return; } int i = 0; for (i = 0; i < n;i++) { mem[i] = (int*)malloc(sizeof(int)*n); } //code int j = 0; for (i = 0; i < n; i++) { for (j = 0; j <= i; j++) { if (j == 0||i==j) { mem[i][j] = 1; } } } for (i = 2; i < n;i++) { for (j = 1; j < i; j++) { mem[i][j] = mem[i - 1][j - 1] + mem[i - 1][j]; } } for (i = 0; i < n; i++) { for (j = 0; j <= i; j++) { printf("%d ", mem[i][j]); } printf("\n"); } //释放内存空间 for (i = 0; i < n; i++) { free(mem[i]); } free(mem);}int main(){ printf("Please enter :"); int n = 0; scanf("%d", &n); show_yanghui(n); system("pause");}
二:等腰三角形
#include <stdio.h>#include<stdlib.h>#include<malloc.h>#include <assert.h>void show_yanghui(int n){ assert(n>0); int **mem = (int **)malloc(sizeof(int*)*n); if (mem==NULL)//判断是否申请内存成功 { return; } int i = 0; for (i = 0; i < n;i++) { mem[i] = (int*)malloc(sizeof(int)*n); } //code int j = 0; for (i = 0; i < n; i++) { for (j = 0; j <= i; j++) { if (j == 0||i==j) { mem[i][j] = 1; } } } for (i = 2; i < n;i++) { for (j = 1; j < i; j++) { mem[i][j] = mem[i - 1][j - 1] + mem[i - 1][j]; } } for (i = 0; i < n; i++) { int k = 0; for(; k < n-1-i; k++) { printf("%5c",' '); } for (j = 0; j <= i; j++) { printf("%5d%5c ",mem[i][j],' '); } printf("\n"); } //释放内存空间 for (i = 0; i < n; i++) { free(mem[i]); } free(mem);}int main(){ printf("Please enter :"); int n = 0; scanf("%d", &n); show_yanghui(n); system("pause");}
阅读全文
1 0
- 动态数组打印杨辉三角
- 【打印杨辉三角】数组实现
- 数组-02. 打印杨辉三角(20)
- 数组-02. 打印杨辉三角(20)
- 数组-02. 打印杨辉三角(20)
- 数组-02. 打印杨辉三角(20)
- 数组-02. 打印杨辉三角
- Java 不用数组打印杨辉三角
- 利用二维数组打印杨辉三角
- C:用数组打印杨辉三角
- 打印N维杨辉三角,动态二维数组
- 打印杨辉三角
- 打印杨辉三角
- 打印杨辉三角
- 打印杨辉三角
- 打印杨辉三角
- 打印杨辉三角
- 打印杨辉三角
- 移动硬盘 使用驱动器X:中的光盘之前需要将其格式化 的 解决办法
- FastReport应用问题
- 最近get到的小知识(未完待续)
- jvm调优--查找最耗CPU的代码
- 在Android Studio上查看代码总行数
- 动态数组打印杨辉三角
- 如何注册APP Store美区ID
- 解析字符串substr
- Java对象的创建(1)
- stm32 定时器5输入捕获
- UE4之物体描边
- JSON数组字符串转成javaBean数组
- 让nginx上的静态网页在访问的时候没有html后缀
- mysql增删改查