初学二维数组心得
2014-03-03 17:46
274 查看
前几天遇到一个C语言的问题如下”要求定义一个3x4的二维数组,输出每一行的最大值中的最小值“,思索了一下代码如下:
做完后老师说还没有别的方法?想了半天老师最后给出了代码如下:
很显然代码二的代码比代码一的精简的多,但是思维难度加大,分析代码一的代码是由于每次max储存新值时都要释放原来的值,但是最后还要用储存的值比大小输出最小,所以定义一个一维数组去存储这组值,但是代码过于繁琐,特别是几个for循环,仔细分析这个过程可以看出来,每次比出每行的最大值时都要和min比较后处理,而定义的数组b[M]明显起个中间值的作用,所以完全可以不用这个数组,直接把max的值存入min,此时又出现一个问题!到底什么时候该存储?什么时候该比较呢?这时循环变量i起到了至关重要的作用,控制这个过程的进行。
从这个问题可以看出来,对于相同的问题的过程思考的深入与否直接影响代码的质量,不能说是代码一不好,代码一的思维过程简单,代码二的思考要深入一些,代码无所谓好坏只是不同的思维方式决定了代码的不同,当然不可否认的是代码二确实比代码一漂亮!
做完后老师说还没有别的方法?想了半天老师最后给出了代码如下:
很显然代码二的代码比代码一的精简的多,但是思维难度加大,分析代码一的代码是由于每次max储存新值时都要释放原来的值,但是最后还要用储存的值比大小输出最小,所以定义一个一维数组去存储这组值,但是代码过于繁琐,特别是几个for循环,仔细分析这个过程可以看出来,每次比出每行的最大值时都要和min比较后处理,而定义的数组b[M]明显起个中间值的作用,所以完全可以不用这个数组,直接把max的值存入min,此时又出现一个问题!到底什么时候该存储?什么时候该比较呢?这时循环变量i起到了至关重要的作用,控制这个过程的进行。
从这个问题可以看出来,对于相同的问题的过程思考的深入与否直接影响代码的质量,不能说是代码一不好,代码一的思维过程简单,代码二的思考要深入一些,代码无所谓好坏只是不同的思维方式决定了代码的不同,当然不可否认的是代码二确实比代码一漂亮!
相关文章推荐
- 关于C语言中参数的传值问题
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- 探讨C语言的那些小秘密之断言
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- 基于C语言fflush()函数的使用详解
- 关于C语言除0引发的思考
- 深入分析C中不安全的sprintf与strcpy
- 探讨register关键字在c语言和c++中的差异
- C中实现矩阵乘法的一种高效的方法
- c语言printf函数的使用详解
- C语言学籍管理系统源代码
- 浅析C语言中的sizeof
- c语言内存泄露示例解析
- 浅析C语言位域和位段
- 解析C语言中位字段内存分配的问题
- 学生成绩管理系统C语言代码实现
- 基于C语言sprintf函数的深入理解
- C语言中函数声明与调用问题
- 基于malloc与free函数的实现代码及分析