| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 411 人关注过本帖
标题:运行结果出错!!帮忙看下!!!
只看楼主 加入收藏
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:6 
运行结果出错!!帮忙看下!!!
#include "stdio.h"

main()
{
    int a[3][3], i, j , (*p)[3]=a, *min, *max, temp;


    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            if ( *(*(p+i)+j) < *(*(p+i)+j+1) )
                max = *(p+i)+j+1;
            if( *(*(p+i)+j) > *(*(p+i)+j+1) )
                min = *(p+i)+j+1;
        }
    }
    temp = a[0][0];
    a[0][0] = *max;
    *max = temp;
    temp = a[3][3];
    a[3][3] = *min;
    *min = temp;
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("%3d",a[i][j]);
        }
        printf("\n");
    }
}
2011-05-24 09:17
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
程序代码:
#include "stdio.h"

main()
{
    int a[3][3], i, j , (*p)[3]=a, *min, *max, temp;


    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    min = max = &p[0][0];
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            if ( *max< p[i][j] )
                max = &p[i][j];
            if ( *min> p[i][j] )
                min = &p[i][j];
        }
    }
    temp = *min;
    a[0][0] = *max;
    a[2][2] = temp;
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("%3d",a[i][j]);
        }
        printf("\n");
    }
}
楼主的程序问题还真不少  找最大最小值的方法不对

数组的最后一个元素不是a[3][3]而是 a[2][2] 交换的时候

只要保存一个  覆盖一个 然后在保存的去覆盖另一个就可以了

                                         
===========深入<----------------->浅出============
2011-05-24 09:33
自由战士89
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:387
注 册:2010-9-2
收藏
得分:5 
回复 楼主 其实、不想说
*(*(p+i)+j+1)是不是越界了
2011-05-24 09:36
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
肯定越界了 如果j等于2的时候是不是就访问了

a[i][3]了  会有这个元素嘛

                                         
===========深入<----------------->浅出============
2011-05-24 09:41
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:5 
temp = a[3][3]; //最大下标应为2,意即,0,1,2,如果是3,就越界啦。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-24 10:59
wubihai7
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2010-3-4
收藏
得分:0 
同感
2011-05-24 11:39
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
收藏
得分:0 
谢谢各位了!
2011-05-24 11:53
快速回复:运行结果出错!!帮忙看下!!!
数据加载中...
 
   



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

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