| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 253 人关注过本帖
标题:指针二维数组,为什么子函数的第2个for没反应,求指点。。
只看楼主 加入收藏
hywhll888
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2011-6-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
指针二维数组,为什么子函数的第2个for没反应,求指点。。
#include <stdio.h>
#include <math.h>
#include <string.h>
void main()
{
    void qx(int (*q)[5][5]);
    int a[5][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}},*q,i;
    q=a;
    qx(q);
}


void qx(int (*q)[5][5])
{
    int i,j,t=0,max=0,min1=25,min2=25,min3=25,min4=25,k1,k2,k3;
    for(i=0;i<25;i++)
    {
        if(max<***q+i)
            max=***q+i;
        if(min1>***q+i)
        {
            min1=***q+i;
            k1=i;
        }
        if(i==k1)
            i=i+1;
        if(min2>***q+i)
        {
            min2=***q+i;
            k2=i;
        }
        if(i==k1||i==k2)
            i=i+1;
        if(min3>***q+i)
        {
            min3=***q+i;
            k3=i;
        }
        if(i==k1||i==k2||i==k3)
            i=i+1;
        if(min4>***q+i)
            min4=***q+i;
    }
    for(i=0;i<25;i++)
    {
        if(***q+i==max)
        {
            t=***q+i;
            *(**q+i)=***q+13;
            *(**q+13)=t;
        }
        if(***q+i==min1)
        {
            t=***q+i;
            *(**q+i)=***q;
            ***q=t;
        }
        if(min2==***q+i)
        {
            t=***q+i;
            *(**q+i)=***q+4;
            *(**q+4)=t;
        }
        if(min3==***q+i)
        {
            t=***q+i;
            *(**q+i)=***q+20;
            *(**q+20)=t;
        }
        if(min4==***q+i)
        {
            t=***q+i;
            *(**q+i)=***q+25-1;
            *(**q+24)=t;
        }
    }
        for(i=0;i<25;i++)
        {
            if(i%5==0)
                printf("\n");
            printf("%5d",***q+i);
        }        
}


功能是把最大的数放中间,最小的4个数从小到大放在4个角上,为什么子函数的第2个for好象没执行样?
2011-07-25 21:48
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:20 
程序代码:
#include <stdio.h>
#include <math.h>
#include <string.h>
void main()
{
    void qx(int (*q)[5]);
    int a[5][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}},(*q)[5],i;    // 为什么没有用i?
    q=a;
    qx(q);
}

***q + i 变为 *(*q + i)

void qx(int (*q)[5])

收到的鲜花
  • hywhll8882011-07-26 15:19 送鲜花  3朵   附言:我很赞同

My life is brilliant
2011-07-25 23:12
hywhll888
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2011-6-9
收藏
得分:0 
回复 2楼 lz1091914999
能告诉我,为什么*q[5][5]这样定义却不行?
2011-07-26 16:29
otto
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-7-26
收藏
得分:0 
好复杂哟~~~
2011-07-26 16:36
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
想努力看懂 !还是茫然。

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-07-27 13:32
快速回复:指针二维数组,为什么子函数的第2个for没反应,求指点。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018523 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved