二维数组是C语言中常用的数据结构,它可以存储多个相同类型的数据,遍历二维数组是指按照一定的顺序访问数组中的每一个元素,本文将介绍C语言中遍历二维数组的几种方法。
(图片来源网络,侵删)
按行遍历
按行遍历是指从数组的第一行开始,逐行访问数组中的元素,具体方法是使用两重循环,外层循环控制行数,内层循环控制列数。
示例代码:
#include <stdio.h> int main() { int arr[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("%d ", arr[i][j]); } printf(" "); } return 0; }
按列遍历
按列遍历是指从数组的第一列开始,逐列访问数组中的元素,具体方法是使用两重循环,外层循环控制列数,内层循环控制行数。
示例代码:
#include <stdio.h> int main() { int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; for (int j = 0; j < 4; j++) { for (int i = 0; i < 3; i++) { printf("%d ", arr[i][j]); } printf(" "); } return 0; }
按对角线遍历(从左上到右下)
按对角线遍历是指从数组的左上角开始,沿对角线方向访问数组中的元素,具体方法是使用两重循环,外层循环控制行数,内层循环控制列数,需要注意的是,每次内层循环结束后,需要更新行列的值。
示例代码:
#include <stdio.h> int main() { int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; int row = 0, col = 0; int n = sizeof(arr) / sizeof(arr[0]); // 获取数组的行数和列数 int m = sizeof(arr[0]) / sizeof(arr[0][0]); // 获取数组的行数和列数(另一种写法) for (row = 0; row < n; row++) { for (col = 0; col < m; col++) { if (row == col) { // 如果行数等于列数,说明在对角线上,输出该元素并更新行列值 printf("%d ", arr[row][col]); row++; // 更新行值,以便下次输出下一个对角线上的元素时,能够正确地输出当前元素后面的元素(因为每条对角线上的元素个数是奇数) break; // 跳出内层循环,进入下一次外层循环的内层循环,继续输出下一个对角线上的元素(即当前元素的下一个元素) } else { // 如果行数不等于列数,说明不在对角线上,直接跳过该元素,进入下一次外层循环的内层循环,继续输出下一个元素(即当前元素的下一个元素) continue; // 跳过本次内层循环,进入下一次外层循环的内层循环,继续输出下一个元素(即当前元素的下一个元素) } } } return 0; }
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/506620.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复