二维数组整型数组转置的问题

本文通过一个3*3数组转置的例子,探讨了在编程过程中遇到的问题及解决思路。作者最初尝试直接交换元素来实现转置,却发现数组值并未发生变化。经过思考和讨论,找到了问题所在并分享了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        程序要求:写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。
        在初步写程序时,在fanzhuan()函数中的内嵌for循环的编写上,我把j的条件写成了j=0;j<3;j++;运行程序之后,我发现,数组的值并没有改变,但是程序并没有报出语法错误的语句,说明只有可能是功能上的错误导致。查错之初,在fanzhuan()函数的纠错上,推导不够深入,认为是a[0][0]和自己互换而导致的错误,但是即使是没有意义的互换也不应该有功能上的错误。在请教我小马哥之后,一语惊醒梦中人,一切只是因为我推导不够深入,确实在i=0的时候,a[0][1]和a[1][0]发生了互换的动作,但是在i=1的时候a[1][0]和a[0][1]又重新互换回来,这样的反变换使得程序在运行时发生两次互换,然而最终输出的数组结果没有改变。
        所以,在程序编写之初,不应该急于写出成型的程序,拥有一个细致的算法更加重要。如果算法出现了错误,我们将陷入一种惯性思维、恶心循环,自己很难再去检查出错误。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值