| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 487 人关注过本帖
标题:求解啊求解。一个二维数组指针的问题。真心找不到问题(╯﹏╰)b
只看楼主 加入收藏
saber930490
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-12-20
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:8 
求解啊求解。一个二维数组指针的问题。真心找不到问题(╯﹏╰)b
#include<stdio.h>
int main()
{
    int a[3][3],i;
    void move(int **p);
    printf("enter the number:\n");
    for(i=0;i<3;i++)
        scanf("%d% %d %d",&a[i][0],&a[i][1],&a[i][2]);
    for(i=0;i<3;i++)
        printf("%d %d %d",a[i][0],a[i][1],a[i][2]);
    p=a
    move(p);
    printf("news numbers are:\n");
    for(i=0;i<3;i++)
        printf("%d %d %d",a[i][0],a[i][1],a[i][2]);
    return 0;
}

void move(int **p)
{
    int i,j,t;
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            t=*(*(p+i)+j);
            *(*(p+i)+j)=*(*(p+j)+i);
            *(*(p+j)+i)=t;
        }
}


654.cpp
C:\Users\Administrator\Desktop\654.cpp(11) : error C2065: 'p' : undeclared identifier
C:\Users\Administrator\Desktop\654.cpp(12) : error C2440: '=' : cannot convert from 'int [3][3]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Users\Administrator\Desktop\654.cpp(12) : error C2146: syntax error : missing ';' before identifier 'move'
执行 cl.exe 时出错.

654.exe - 1 error(s), 0 warning(s)
搜索更多相关主题的帖子: include numbers return 
2012-12-20 22:45
飞跃的乌龟
Rank: 2
等 级:论坛游民
帖 子:96
专家分:18
注 册:2012-10-20
收藏
得分:0 
不懂
2012-12-20 22:53
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
把那个函数声明拿到主函数之外

那个变量必须要先声明再使用

DO IT YOURSELF !
2012-12-20 22:58
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
貌似int **p是一个指向指针的指针,不是指向二维数组的指针

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-20 23:02
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:20 
楼主的代码存在很严重的错误啊,这是我改过的应该可以实现
程序代码:
#include<stdio.h>
int main()
{
    int a[3][3],i;
    void move(int **p);
    printf("enter the number:\n");
    for(i=0;i<3;i++)
        scanf("%d% %d %d",&a[i][0],&a[i][1],&a[i][2]);
    for(i=0;i<3;i++)
        printf("%d %d %d",a[i][0],a[i][1],a[i][2]);
    p=a
    move(p);
    printf("news numbers are:\n");
    for(i=0;i<3;i++)
        printf("%d %d %d",a[i][0],a[i][1],a[i][2]);
    return 0;
}

void move(int **p)
{
    int i,j,t;
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            t=*(*(p+i)+j);
            *(*(p+i)+j)=*(*(p+j)+i);
            *(*(p+j)+i)=t;
        }
}

首先有三个小错误,12行少了个分号,p没有定义,move函数多做了一次转换,真正的问题是楼主对二维指针和二位数字的混淆,二维指针是指向指针的指针,不是指向二位数组的指针,而对二维数组名取两次星使其变成行指针和列指针的情况是针对二位数字第一行而言的,还有就是传参,p被a赋值,那么p就是int*类型的,而形参是int**类型的

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-20 23:30
ren1375342
Rank: 2
等 级:论坛游民
帖 子:33
专家分:46
注 册:2012-12-4
收藏
得分:0 
printf("%d %d %d",a[i][0],a[i][1],a[i][2]);
    p=a   /*是不是缺个封号啊*/
    move(p);

如果您想找一份编写软件的工作, 则首先您应该能够回答 "是" 的一个问题就是:"请问,您会使用c吗?"
2012-12-21 00:12
SLmask
Rank: 2
等 级:论坛游民
帖 子:14
专家分:27
注 册:2012-10-18
收藏
得分:0 
我修改后的代码如下
#include<stdio.h>
int main()
{
    void move(int (*)[3]);
    int a[3][3],i,j;
    printf("enter the number:\n");
    for(i=0;i<3;i++)
        for(j = 0;j < 3;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<3;i++)
        printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
    move(a);
    printf("news numbers are:\n");
    for(i=0;i<3;i++)
        printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
    return 0;
}

void move(int (*p)[3])
{
    int i,j,t;
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            t=*(*(p+i)+j);
            *(*(p+i)+j)=*(*(p+j)+i);
            *(*(p+j)+i)=t;
        }
}

修改的地方是
1.读入语句那里,楼主的也没什么问题,不过多用了一个%,嘿嘿
2.还有就是我没有再去声明一个p,把a赋给p,因为没必要,只要传递数组名就可以了,楼主可以看一下,二维数组是这样作为参数传递的
3.输出语句那里我加了换行,这样输出的时候比较清晰
4.还有一个问题没有修改,我假设楼主的这个程序是要交换数组里面的值的,但是很显然楼主交换了两次,所以导致结果根本没有发生变化
修改办法是在move中,j的初始值设为i,而不是0。
2012-12-21 07:49
a447340229
Rank: 2
等 级:论坛游民
帖 子:22
专家分:19
注 册:2012-12-18
收藏
得分:0 
看的有点头痛了,,,只发现p没有定义

每个月总有那么几天要上论坛好好学习学习。。
2012-12-21 08:04
海之森林
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-16
收藏
得分:0 
用aha-C就能查出来了...........
2012-12-22 21:37
快速回复:求解啊求解。一个二维数组指针的问题。真心找不到问题(╯﹏╰)b
数据加载中...
 
   



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

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