【学习记录】根据输入的大小定义二维数组

C/C++无法声明一个不定大小的二维数组,但可以用二级指针来做到,数组和指针有一些共通性。

int **A; //声明二级指针A,指向一个指针数组(注意并不是代表A指向一个二维数组哦)
cin >> M >> N; //输入两个维度
A = new int *[M]; //开辟指针数组
for(i = 0; i < M; i++)
A[i] = new int[N];

之后便可以像使用数组一样来对A进行操作,A[i][j]这样。

用vector来实现也可以
vector<vector> A(M, vector(N, 0));

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个示例程序,可以实现输入一个3x3的二维数组,然后选出其中最大的排序: ```c #include <stdio.h> int main() { int arr[3][3], i, j, max, temp; // 输入3x3的二维数组 printf("请输入一个3x3的二维数组:\n"); for(i=0; i<3; i++) { for(j=0; j<3; j++) { scanf("%d", &arr[i][j]); } } // 选出最大的数并排序 max = arr[0][0]; for(i=0; i<3; i++) { for(j=0; j<3; j++) { if(arr[i][j] > max) { max = arr[i][j]; } } } printf("最大的数是:%d\n", max); for(i=0; i<3; i++) { for(j=0; j<3; j++) { if(arr[i][j] == max) { // 将最大的数放到数组最后 temp = arr[i][j]; arr[i][j] = arr[2][2]; arr[2][2] = temp; } } } // 输出排序后的数组 printf("排序后的数组为:\n"); for(i=0; i<3; i++) { for(j=0; j<3; j++) { printf("%d ", arr[i][j]); } printf("\n"); } return 0; } ``` 示例输出: ``` 请输入一个3x3的二维数组: 3 4 5 6 7 8 1 2 9 最大的数是:9 排序后的数组为: 3 4 5 6 7 8 1 2 9 ``` ### 回答2: c语言中,可以通过循环和条件判断来找出一个3乘3的二维数组中的最大值,并找出其对应的排序。 首先,我们定义一个3乘3的二维数组,并利用scanf函数接收用户输入的9个整数来初始化这个数组。例如: ```c int matrix[3][3]; for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; j++){ scanf("%d", &matrix[i][j]); } } ``` 接下来,我们定义一个变量max来保存当前找到的最大值,初始值设为二维数组的第一个元素。然后,使用两个循环遍历整个二维数组,与max进行比较,如果找到更大的值,则更新max的值为当前元素的值,并记录该元素的排序位置。例如: ```c int max = matrix[0][0]; int max_i = 0; int max_j = 0; for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; j++){ if(matrix[i][j] > max){ max = matrix[i][j]; max_i = i; max_j = j; } } } ``` 最后,输出最大值和其排序位置。例如: ```c printf("最大值为:%d\n", max); printf("排序位置为:[%d][%d]\n", max_i, max_j); ``` 综上,以上代码就是通过C语言求解一个3乘3二维数组中最大值及其排序位置的方法。 ### 回答3: 要找出3x3二维数组中的最大排序,我们可以按照以下步骤进行: 1. 定义一个3x3的二维数组,可以通过用户输入或者预先设定一组数组。 假设数组为arr[3][3]。 2. 然后,我们需要找到数组中的最大值。我们可以定义一个变量max来存储最大值,并将其初始化为数组中的第一个元素arr[0][0]。 3. 接下来,我们使用双重循环遍历整个数组中的每个元素,比较当前元素与最大值的大小,如果当前元素大于max,则将其赋值给max,否则继续查找下一个元素。 4. 循环结束后,max将存储着数组中的最大值。 5. 最后,我们可以输出最大值,并输出它在二维数组中的位置。可以通过再次循环数组来确定最大值的行和列索引。输出格式可以是数组中的值和对应的索引。 下面是一个简单的示例代码: ```c #include <stdio.h> int main() { int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int max = arr[0][0]; int maxRow = 0; int maxCol = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (arr[i][j] > max) { max = arr[i][j]; maxRow = i; maxCol = j; } } } printf("最大值为:%d\n", max); printf("最大值的位置为:arr[%d][%d]\n", maxRow, maxCol); return 0; } ``` 这段代码假设数组已经预先设定,并且找到的最大值只有一个。如果数组允许存在多个最大值,则可以稍作修改以适应这种情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值