初学二维数组心得

前几天遇到一个C语言的问题如下”要求定义一个3x4的二维数组,输出每一行的最大值中的最小值“,思索了一下代码如下:

 

 

做完后老师说还没有别的方法?想了半天老师最后给出了代码如下:

很显然代码二的代码比代码一的精简的多,但是思维难度加大,分析代码一的代码是由于每次max储存新值时都要释放原来的值,但是最后还要用储存的值比大小输出最小,所以定义一个一维数组去存储这组值,但是代码过于繁琐,特别是几个for循环,仔细分析这个过程可以看出来,每次比出每行的最大值时都要和min比较后处理,而定义的数组b[M]明显起个中间值的作用,所以完全可以不用这个数组,直接把max的值存入min,此时又出现一个问题!到底什么时候该存储?什么时候该比较呢?这时循环变量i起到了至关重要的作用,控制这个过程的进行。

从这个问题可以看出来,对于相同的问题的过程思考的深入与否直接影响代码的质量,不能说是代码一不好,代码一的思维过程简单,代码二的思考要深入一些,代码无所谓好坏只是不同的思维方式决定了代码的不同,当然不可否认的是代码二确实比代码一漂亮!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值