4.通过完成函数完成以下程序代码,该程序输入m、n,再输入只有一个最小值的m行n列的矩阵,输出矩阵中最小值所在列号(列号从1开始),输入输出示意如下:
3 4
6 2 3 4
5 1 17 8
9 5 5 12
2
【注意】:以下程序代码只允许添加不允许修改。
int* read(int* m, int* n){
}
//输出最小数在矩阵中列号
void print(int* a, int m, int n){
}
int main(){
int m, n;
int* a;
a = read(&m, &n);
print(a, m, n);
free(a);
}
c语言基础题指针二维数组
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qzjhjxj 2022-05-12 10:19关注
供参考:
#include <stdio.h> #include <stdlib.h> int* read(int* m, int* n) { int i, j; scanf("%d%d", m, n); int* a = (int*)malloc(sizeof(int) * (*m) * (*n)); for (i = 0; i < (*m); i++) for (j = 0; j < (*n); j++) scanf("%d", a + i * (*n) + j); return a; } //输出最小数在矩阵中列号 void print(int* a, int m, int n) { int i, j, min, k; min = *a; k = 0; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) if (min > *(a + i * n + j)) { min = *(a + i * n + j); k = j; } } printf("%d", k + 1); } int main() { int m, n; int* a; a = read(&m, &n); print(a, m, n); free(a); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用