| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 561 人关注过本帖
标题:找个帮忙看下这哪里出错,感激~~!
只看楼主 加入收藏
dl5200605
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-10-10
结帖率:100%
收藏
 问题点数:0 回复次数:7 
找个帮忙看下这哪里出错,感激~~!
这个二维数组为什么它不调用函数?
#include<stdio.h>
void main()
{
    int zhuanzhi(int b[3][3]);
    int x,y,i,j,a[3][3],m,n;
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            printf("输入数字:");
            scanf("%d",&a[i][j]);
        }
        for(x=0;x<3;x++)
            for(y=0;y<3;y++)
                printf("%d",a[x][y]);
                for(m=0;i<3;i++)
        for(n=0;j<3;j++)
                printf("%d",zhuanzhi(a));
   
}
int zhuanzhi(int b[3][3])
{
    int i,j,z[3][3];
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            z[i][j]=b[j][i];
                return z[i][j];
        }
        
   
}
搜索更多相关主题的帖子: 感激 
2009-11-17 19:33
fgchg911
Rank: 4
等 级:业余侠客
威 望:1
帖 子:131
专家分:204
注 册:2009-9-6
收藏
得分:0 
这有问题吧,二维数组传入函数只剩一个首地址了,还怎么定位
&b[3][2] == b+3*m+2; 根本就不知道每一行有多长m
2009-11-17 20:11
fgchg911
Rank: 4
等 级:业余侠客
威 望:1
帖 子:131
专家分:204
注 册:2009-9-6
收藏
得分:0 
你这代码到处都是错误,啥都不懂,全是乱的,改都费劲,我给你重写一个
2009-11-17 20:16
fgchg911
Rank: 4
等 级:业余侠客
威 望:1
帖 子:131
专家分:204
注 册:2009-9-6
收藏
得分:0 
#include <stdio.h>
#define N 3

void zhuanzhi(void);
int a[N][N];

int main(void)
{
        int i=0,j=0;
        
        for(i=0; i<N; i++)
        {
                for(j=0; j<N; j++)
                {
                        printf("input:");
                        scanf("%d",&a[i][j]);
                }
        }

        printf("转置前:\n");

        for(i=0; i<N; i++)
        {
                for(j=0; j<N; j++)
                {
                        printf("%d ",a[i][j]);
                }
                printf("\n");
        }
        
        zhuanzhi();
        printf("转置后:\n");
        
        for(i=0; i<N; i++)
        {
                for(j=0; j<N; j++)
                {
                        printf("%d ",a[i][j]);
                }
                printf("\n");
        }
        
        return 0;
}

void zhuanzhi(void)
{
        int i=0,j=0,t;
               
        for(i=0; i<N; i++)
        {
                for(j=0; j<=i; j++)
                {
                        t =    a[i][j];
                        a[i][j]    = a[j][i];
                        a[j][i] = t;
                }
        }
}
2009-11-17 21:02
fgchg911
Rank: 4
等 级:业余侠客
威 望:1
帖 子:131
专家分:204
注 册:2009-9-6
收藏
得分:0 
牛皮吹破了,哎,弄了半天,二维数组传参太麻烦,弄了个全局的
2009-11-17 21:03
fgchg911
Rank: 4
等 级:业余侠客
威 望:1
帖 子:131
专家分:204
注 册:2009-9-6
收藏
得分:0 
我再用一维数组试试
2009-11-17 21:04
fgchg911
Rank: 4
等 级:业余侠客
威 望:1
帖 子:131
专家分:204
注 册:2009-9-6
收藏
得分:0 
太麻烦了,不试了,
2009-11-17 21:16
ginkgo
Rank: 2
等 级:论坛游民
帖 子:20
专家分:54
注 册:2009-11-17
收藏
得分:0 
#include<stdio.h>
void main()
{
    void zhuanzhi(int b[3][3]);//第一,无返回值,数组本来就是传址调用,不用返回值
    int x,y,i,j,a[3][3],m,n;
    printf("输入数字:\n");//第二,把该输出语句放在循环外,最好有个回车
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            
            scanf("%d",&a[i][j]);
        }
        printf("原的矩阵为:\n");
        for(x=0;x<3;x++)
        {
            for(y=0;y<3;y++)
                printf("%d  ",a[x][y]);//第三,输出矩阵时,别忘了数字间的空格
            printf("\n");
        }

        printf("转置后的矩阵为:\n");
        zhuanzhi(a);//第四,直接在循环外调用
         for(m=0;m<3;m++)//第五,循环的变量是m,n,而你用的是 for(m=0;i<3;i++)   for(n=0;j<3;j++),注意括号里的i,j,这是未调用的主要原因
        {
                 for(n=0;n<3;n++)
                  printf("%d  ",a[m][n]);
                 printf("\n");
                }
   
}
void zhuanzhi(int b[3][3])//函数稍有改动
{
    int i,j,z[3][3];
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            z[i][j]=b[j][i];
            
        }
        for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            b[i][j]=z[i][j];
            
        }
        
   
}
2009-11-17 22:16
快速回复:找个帮忙看下这哪里出错,感激~~!
数据加载中...
 
   



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

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