【学习ios之路:C语言】二维.三维数组.字符串数组的应用
2014-12-08 21:29
316 查看
一.二维数组
int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};//定义了一个3行4列的二维数组.
printf("%ld\n", sizeof(a));//48存储空间大小为48.
通过双下标访问二维数组中的元素,先访问行,再访问列.
注:二维数组定义时,可以不指定第⼀维的长度,但必须给定第二维。例如:int a[][3] = {1 , 2 , 3 , 4 , 5};
例子:
2.定义一个二维数组,4行3列,元素取值范围为[20,40] 求所有元素的和.
代码如下:
int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};//定义了一个3行4列的二维数组.
printf("%ld\n", sizeof(a));//48存储空间大小为48.
通过双下标访问二维数组中的元素,先访问行,再访问列.
注:二维数组定义时,可以不指定第⼀维的长度,但必须给定第二维。例如:int a[][3] = {1 , 2 , 3 , 4 , 5};
例子:
<span style="font-size:14px;"><span style="font-size:14px;"> int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; for (int i = 0; i < 3; i++) { //外层循环控制行数; for (int j = 0; j < 4; j++) { //内层循环控制列数 printf("%4d ", a[i][j]); //输出二维数组的元素 } printf("\n"); } </span></span>
2.定义一个二维数组,4行3列,元素取值范围为[20,40] 求所有元素的和.
<span style="font-size:14px;"><span style="font-size:14px;"> int n[4][3] = {0}; int sum = 0; for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { n[i][j] = arc4random() % ( 40 - 20 + 1) + 20; sum += n[i][j]; } } printf("%d\n", sum); </span></span>3.输出每一行元素的和.
<span style="font-size:14px;"><span style="font-size:14px;"> int n[4][3] = {0}; int sum = 0; for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { n[i][j] = arc4random() % ( 40 - 20 + 1) + 20; sum += n[i][j]; printf("%d ", n[i][j]); } printf("sum = %d \n", sum); sum = 0; } </span></span>4.输出每一列元素的和.
<span style="font-size:14px;"><span style="font-size:14px;"> int m[4][3] = {0};//定义二维数组 for (int i = 0 ; i < 4; i++) { for (int j = 0; j < 3; j++) { m[i][j] = arc4random() % (20 - 10 + 1 ) + 10; //随机值范围 10 - 20 printf("%d ", m[i][j]); } printf("\n"); } //每一列的和 int sum = 0 ; for (int i = 0; i < 3; i++) { //列 for (int j = 0; j < 4; j++) { //行 sum += m[j][i]; //m[j][i] //对应4行3列 } printf("sum = %d ", sum); sum = 0; } </span></span>3、找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没鞍点),打印出有关信息。3行4列的二维数组,取值范围20 - 40
代码如下:
<span style="font-size:14px;"><span style="font-size:14px;"> //方法1: //定义一个二维数组 int a[3][4] = {0}; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { a[i][j] = arc4random() % (40 - 20 + 1) + 20;//随机取出几个范围在20-40的数. printf("%d ", a[i][j]); } printf("\n"); } //定义最大最小值 int max = 0, min = 1000; int m[3] = {0};//定义用来存储最大值的一位数组. int n[4] = {0};//定义用来存储最小值的一位数组. //求最大值,并把最大值保存在一维数组m中. for (int i = 0; i < 3; i++) { for ( int j = 0; j < 4; j++) { if (max < a[i][j]) { max = a[i][j]; } } m[i] = max; printf("max = %d ", max); max = 0; //没遍历一次,max赋值为0 } //求最小值,并把最小是保存在一维数组m中 for (int i = 0 ; i < 3; i++) { for (int j = 0; j < 4; j++) { if (min > a[i][j]) { min = a[i][j]; } } n[i] = min; printf("max = %d" , min); min = 10000; //初始化 } for (int i = 0 ; i < 3 ; i++) { for (int j = 0; j < 4; j++) { if (a[i][j] == m[i] && a[i][j] == n[j] ) { printf("第%d行第%d列存在鞍点是:%d\n", i, j,a[i][j]); }else { printf("没有鞍点!"); } } </span></span>方法2:
<span style="font-size:14px;"><span style="font-size:14px;"> int a[3][4] = {0}; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { a[i][j] = 1;//arc4random() % (40 - 20 + 1) + 20; printf("%d ", a[i][j]); } printf("\n"); } //遍历数组中的每个元素,验证每个元素是否是鞍点. int count = 0; //用来记录鞍点的个数 for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { //首先假定该数是该行中最大的 BOOL isMax = YES; //验证该数是否是该行中最大的 for (int column = 0; column < 4; column++) { if (a[i][column] > a[i][j]) { isMax = NO; //如果不是最大的, 将isMax标识为NO. break; //结束当前循环 } } if (isMax == NO) { //如果为NO,说明不是该行中最大的,已经不满足鞍点的条件了. continue; //直接进入下一循环 } //先假设是该列中最小的. BOOL isMin = YES; //验证该数是否是该列中最小的. for (int row = 0; row < 3; row++) { if (a[row][j] < a[i][j]) { isMin = NO; break; } } if (isMin == NO) { continue; } count++; printf("row:%d,column:%d = %d\n", i + 1, j + 1, a[i][j]); } } if (count == 0) { printf("没有鞍点"); } </span></span>
相关文章推荐
- 【学习ios之路:C语言】② 二维.三维数组.字符串数组的应用
- ios学习路线—C语言(函数,数组,字符串,指针)
- 【学习ios之路:C语言】②高级指针应用
- 【学习ios之路:Objective-C】数组,字符串,字典的总和练习
- 【学习ios之路:C语言】字符串溢出情况分析.
- 【黑马程序员】iOS学习之路——C语言之函数和数组
- 【学习ios之路:C语言】函数及递归的简单应用
- iOS开发学习之C语言---C11 二维数组、字符串数组、多维数组
- 【学习ios之路:C语言】If循环的应用的练习
- 【学习ios之路:C语言】数组.循环.语句总和运用试题练习
- 黑马程序员之IOS学习总结——04 C语言中数组与字符串
- 【学习ios之路:C语言】结构体应用
- 黑马程序员——IOS学习笔记(C语言字符串和数组)
- C语言中 字符、数组、字符串、指针——学习IOS你必须了解
- 【学习ios之路:C语言】①指针及其简单的应用
- ios开发-c语言之指针和数组以及指针和字符串的学习
- 【学习ios之路:C语言】一维数组,数组排序,字符数组
- 【学习ios之路:C语言】for ,while,do while循环的应用
- IOS开发之路--C语言数组和字符串
- 【学习ios之路:C语言】数据类型、常量变量、运算符、表达式、格式化输入输出