标题:指针问题,思考了很久,不知道哪里错了
只看楼主
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
一个是.c文件,一个是.cpp文件,有编译问题正常

总有那身价贱的人给作业贴回复完整的代码
2015-09-14 10:30
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
发完才发现是在C++版

总有那身价贱的人给作业贴回复完整的代码
2015-09-14 10:31
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 10楼 chgtx
程序代码:
void sort(int (*p)[5])
{
    int i, j, temp;

    int *Max, *Min;    
    
    *Max = *(*p);                                 //将行列式第一个地址赋给Max,赋给Min
    
    *Min = *(*p);                               
    
    for(i = 0; i < 5; i++)                           //找出最大值地址;
    {
        for(j = 0; j < 5; j++)
        {
            if(*Max < *(*(p + i) + j))
            {
                Max = *(p + i) + j;
            }
            if(*Min > *(*(p + i) + j))             //找出最小值地址;
            {
                Min = *(p + i) + j;
            }
            
        }
    }
    
    temp = *(*(p + 2) + 2);                      //最大值与中间值交换;
    *(*(p + 2) + 2) = *Max;
    *Max = temp;
    
    temp = *Min;                                 //最小值与第一行第一列的值交换;
    *Min = p[0][0];
    p[0][0] = temp;
    
    *Min = *(*(p)+ 1);
    for(i = 0; i < 5; i++)
    {
        for(j = 0; j < 5; j++)
        {
            if((*(*(p + i) + j) != p[0][0]) && (*Min > *(*(p + i) + j)))   //判断条件为循环值不等于最小值,且大于*Min;
            {
                Min = *(p + i) + j;                                   //找出第二小值地址;
            }
        }
    }

    temp = *Min;                                                      //将第二小值与第一行第五列值交换;
    *Min = p[0][4];
    p[0][4] = temp;
    
    *Min = *(*(p)+ 2);
    for(i = 0; i < 5; i++)                                             //找出第三小值;
    {
        for(j = 0; j < 5; j++)
        {
            if((*(*(p + i) + j) != p[0][0]) && (*(*(p + i) + j) != p[0][4]) && (*Min > *(*(p + i) + j)))
            {
                Min = *(p + i) + j;
            }
        }
    }

    temp = *Min;                                                     //第三小值与第五行第一列值交换;
    *Min = p[4][0];
    p[4][0] = temp;

    *Min = *(*(p)+ 3);;                                                     //找出第四小值地址;
    for(i = 0; i < 5; i++)
    {
        for(j = 0; j < 5; j++)
        {
            if((*(*(p + i) + j) != p[0][0]) && (*(*(p + i) + j) != p[0][4]) && (*(*(p + i) + j) != p[4][0]) && (*Min > *(*(p + i) + j)))
            {
                Min = *(p + i) + j;
            }
        }
    }

    temp = *Min;                                                       //第四小值与第五行第五列值交换;
    *Min = *(*(p + 4) + 4);
    *(*(p + 4) + 4) = temp;

    for(i = 0; i < 5 ; i++)                                 //打印交换过后的行列式;
    {
        for(j = 0; j < 5; j++)
        {
            printf("%4d", *(*(p + i) + j));
        }

        printf("\n");
    }
    
    
}

我没有和你斗嘴,我在2楼说过问题所在,而且不是说说而已
初步改了下,和预料的一样,代码量大了出错几率也就大了。
debug工作量也就大了
剩下的自己能解决吧?

剑栈风樯各苦辛,别时冰雪到时春
2015-09-14 10:37
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 12楼 embed_xuel
大神给他说说吧

剑栈风樯各苦辛,别时冰雪到时春
2015-09-14 10:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-457271-1-1.html




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

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