c语言二维数组进行数组运算 exe运行到一半崩溃?

求教c语言二维数组中二维数组问題:

先是用对a[5][5]随机取值然后比较各行中最大值集所在的行数和列数,问题是如果一行中有多个相同的最大值,怎样分别输出所在列的标號?

另外写一个循环语句当该行某一列的值等于最大值的时候输出列号

 请看下面的c程序,我不清楚if((p-a[0])%4==0) printf("\n");的含义.既然p开始是0行0列元素的地址,那么p++是下一个元素的地址呢还是下一行元素的首地址呢?如果是前者的话,每行应该输出一个元素才对,如果是后者嘚话又应该只能输出每一行的首元素才

如果只考虑高效不考虑空间消耗的话,

我认为下面的算法已经足够高效了:

1. 将数组拷贝到单链表中(这个时间消耗是很低的但是由一定的空间消耗)

2. 将二维数组的下标换算成一维下标(n维数组实际存储是一维的,所以这种方式访问效率最好)

3. 根据上述第2步得到的下标,来进行链表的结点删除/插入操作(例如要刪除的是

二维数组的第[n][m]和成员则将其换成一维下标后,在链表中遍历到相应位置然后进行链表结点删除操作)

4. 最后用得到的链表再反过來给数组赋值

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

我要回帖

更多关于 c语言二维数组 的文章

 

随机推荐