C语言二维数组作为形参传值问题
来源:互联网 发布:大智慧mac版使用教程 编辑:程序博客网 时间:2024/06/18 14:00
题目:编写函数void exchange(int a[M][N]),将MxN维的矩阵中最大元素和最小元素所在的列进行互换,如果最大元素与最小元素在同一列,则不要求互换。
要求:在主函数中初始化原始矩阵并输出原始矩阵,输出最大元素和最小元素的值以及各自所在的行号和列号,输出处理之后的矩阵。
解决:这题难度适中,输出最大最小元素和使用for循环比较,行号列号可以在循环时记录。列互换可以定义一个Temp[M][1]数组。唯一需要注意的一点是:exchange函数申明为void exchange(int a[M][N]),在main函数中调用exchange时,只需写为exchange(a)即可,写成exchange(a[M][N])会报错,这一点要切记!!!
参考网址:
http://bbs.csdn.net/topics/390428483
代码:
#define M 3#define N 3#include <stdio.h>void exchange(int a[M][N]){ int max = a[0][0]; int min = a[0][0]; int i, j; int b[M][1]; int max_c, max_r, min_c, min_r; for(i = 0; i < M; i++){ for(j = 0; j < N; j++){ if(a[i][j] > max){ max = a[i][j]; max_r = i; max_c = j; } if(a[i][j] < min){ min = a[i][j]; min_r = i; min_c = j; } } } printf("max = %d, min = %d\n", max, min); printf("max_r = %d, max_c = %d\n", max_r + 1, max_c + 1); printf("min_r = %d, min_c = %d\n", min_r + 1, min_c + 1); if(max_c == min_c){ printf("no change!!\n"); } else{ for(i = 0; i < M; i++){ b[i][1] = a[i][max_c]; } for(i = 0; i < M; i++){ a[i][max_c] = a[i][min_c]; } for(i = 0; i < M; i++){ a[i][min_c] = b[i][1]; } printf("the change matrix is:\n"); for(i = 0; i < M; i++){ for(j = 0; j < N; j++){ printf("%d ", a[i][j]); } printf("\n"); } }}int main(){ int a[M][N], i, j; printf("please input the matrix:\n"); for(i = 0; i < M; i++){ for(j = 0; j < N; j++){ scanf("%d", &a[i][j]); } } printf("the matrix is:\n"); for(i = 0; i < M; i++){ for(j = 0; j < N; j++){ printf("%d ", a[i][j]); } printf("\n"); } exchange(a); return 0;}
运行结果:
0 0
- C语言二维数组作为形参传值问题
- 二维数组作为函数参数(C语言)
- 二维数组作为函数参数传递剖析(C语言)
- C语言二维数组作为函数的参数
- C语言二维数组作为函数参数传递
- 二维数组作为函数参数传递剖析(C语言)
- 二维数组作为函数参数传递剖析(C语言)总结
- 苦学c语言(1)二维数组作为函数参数
- C语言二维数组作为函数的参数
- C语言二维数组作为函数的参数
- C语言二维数组作为函数参数传递
- C语言二维数组作为函数的参数
- [总结]C语言二维数组作为函数的参数
- [总结]C语言二维数组作为函数的参数
- C/C++语言 二维数组作为函数的参数总结
- C语言二维数组作为函数参数传递剖析
- C语言中如何将二维数组作为参数传递
- 一个关于C语言二维数组问题
- 练习
- 人脸检测(三)
- Medical Image Segmentation Using New Hybrid Level-Set Method
- 给出01数组计算出符合岛屿规则的个数 [牛客网-滴滴出行2017春招算法工程师笔试题B卷 ]
- Docker镜像存储相关数据结构
- C语言二维数组作为形参传值问题
- C++ mutable关键字
- php程序员的发展路线
- HDU 6029 Graph Theory
- 补作业 5-4
- 【计算机视觉】双目视觉1 opencv调用双摄像机 多个摄像机
- 十大经典算法之Apriori
- Java语言计算器界面实现
- UVa1586