| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 534 人关注过本帖
标题:求助,大大帮帮忙啊。
只看楼主 加入收藏
xp251746222
Rank: 1
等 级:新手上路
帖 子:22
专家分:2
注 册:2010-4-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
求助,大大帮帮忙啊。
程序出错了。怎么改啊
程序代码:
#include<stdio.h>
void main()
{
    void zhuz(int *p);
    int i,j,a[3][3],(*p)[3];
    p=a;
    printf("输入一个三乘三矩阵。\n");
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&p[i][j]);
    zhuz(*p);
    for(i=0;i<3;i++)
    {for(j=0;j<3;j++)
            printf("%d ",p[i][j]);
    printf("\n");}
}
void zhuz(int *p)
{int i,j;
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            p[i][j]=p[j][i];

}
p[i][j]=p[j][i];是错误的,怎么出错了,又怎么改啊。


[ 本帖最后由 xp251746222 于 2010-5-25 16:46 编辑 ]
2010-05-25 16:44
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:3 
#include<stdio.h>
void zhuz(int p[][3])
{
    int i,j,m;
    for(i=0;i<3;i++)
        for(j=i;j<3;j++)
        {
            m=p[i][j];
            p[i][j]=p[j][i];
            p[j][i]=m;
        }
}
int main()
{   
    int i,j,a[3][3],(*p)[3];
    p=a;
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    zhuz(a);
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            printf("%d ",p[i][j]);
    printf("\n");
}
~
2010-05-25 17:31
simen1986
Rank: 2
等 级:论坛游民
帖 子:12
专家分:64
注 册:2010-5-25
收藏
得分:17 
  你的函数里面形参是*p,,里面却是二维的,会出问题。
改为如下:

#include<stdio.h>
void main()
{
    void zhuz(int (*)[3]);
    int i,j,a[3][3],(*p)[3];
    p=a;
    printf("输入一个三乘三矩阵。\n");
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&p[i][j]);
    zhuz(p);
    for(i=0;i<3;i++)
    {   
        for(j=0;j<3;j++)
            printf("%d ",p[i][j]);
        printf("\n");
    }
}
void zhuz(int (*p)[3])
{
    int i,j;
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
           p[i][j]=p[j][i];

}
2010-05-25 18:54
xp251746222
Rank: 1
等 级:新手上路
帖 子:22
专家分:2
注 册:2010-4-8
收藏
得分:0 
谢谢了。呵呵。


[ 本帖最后由 xp251746222 于 2010-5-25 19:15 编辑 ]
2010-05-25 19:11
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:0 
你不觉得你的子函数有问题么?你把所有元素都循环一次做交换,你觉得最后元素会交换么?本来已经交换的元素又被换回来,掉不掉用子函数,输出都是一样的,子函数相当与什么都没做,帮你改了一下函数逻辑,才给三分,真是多此一举,不识货
2010-05-25 19:33
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
收藏
得分:0 
#include<stdio.h>
void main()
{
    void zhuz(int (*p)[3]);
    int i,j,a[3][3],(*p)[3];
    p=a;
    printf("输入一个三乘三矩阵。\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            scanf("%d",&p[i][j]);
        }
    }
    zhuz(p);
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("%d ",p[i][j]);
        }
    printf("\n");
    }
}
void zhuz(int (*p)[3])
{int i,j,t;
    for(i=0;i<3;i++)
    {
        for(j=0;j<i;j++)
        {
            t=p[i][j];
            p[i][j]=p[j][i];
            p[j][i]=t;
        }
    }

}

2010-05-25 22:56
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-05-26 07:15
快速回复:求助,大大帮帮忙啊。
数据加载中...
 
   



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

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