| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 629 人关注过本帖
标题:为什么运行错误了,各位高手求解
只看楼主 加入收藏
我想学cplaus
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2013-5-31
结帖率:100%
收藏
已结贴  问题点数:3 回复次数:8 
为什么运行错误了,各位高手求解
#include"iostream"
using namespace std;
class arr
{
private:
    int str[100][100];
public:
    arr()
    {
     for(int i=0;i<100;i++)
         for(int j=0;j<100;j++)
             str[i][j]=0;
    }
    void getdata(int w[100][100])
    {
     for(int i=0;i<100;i++)
         for(int j=0;j<100;j++)
             str[i][j]=w[i][j];
    }
    friend void add(arr&,arr&,arr&);
};
void add(arr&C,arr&A,arr&B)
{  
    C.str[0][0]=0;
    for(int i=0;i<100;i++)
         for(int j=0;j<100;j++)
         {
          C.str[i][j]=A.str[i][j]+B.str[i][j];
         }
     
}
int main()
{
    int a[100][100],b[100][100],c[100][100];
    arr fi,se,three;
    cout<<"input one numbers:";
    for(int i=0;i<100;i++)
         for(int j=0;j<100;j++)
             cin>>a[i][j];
    cout<<"input two numbers:";
    for(i=0;i<100;i++)
         for(int j=0;j<100;j++)
             cin>>b[i][j];
    fi.getdata(a[100][100]);
    se.getdata(b[100][100]);
    add(three,fi,se);
    return 0;

}
求解这两句为什么错误了,运行是这样的error C2664: 'getdata' : cannot convert parameter 1 from 'int' to 'int [][100]'
        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

搜索更多相关主题的帖子: friend public include private 
2013-06-11 20:44
p1345234022
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2013-6-11
收藏
得分:1 
你这是想实现什么算法?
2013-06-11 22:07
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:1 
你的参数弄错了,你声明的时候是Int w[100][100]是指一个数组w[100]而是用的时候传递的是单个元素a[100][100],所以参数类型不对应,因此出错。

C++菜鸟
2013-06-12 09:14
我想学cplaus
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2013-5-31
收藏
得分:0 
lzj12530 那是不是把void getdata(int w[100][100])函数改一下还是下面的改
2013-06-12 18:18
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:0 
两边都要改,对于你要实现的功能来讲这种写法本身就是错误的。你只需要传递数组的首地址就行了,如果你要将整个数组都进行传递,声明时用void getdata(int w[],int size)。不过二维数组是不能这样传递,也就是不能写成getdata(int w[][],int size)!!! 如果要传递就要转换为1维数组

[ 本帖最后由 lzj12530 于 2013-6-12 20:12 编辑 ]

C++菜鸟
2013-06-12 20:09
雨中人X
Rank: 2
等 级:论坛游民
帖 子:8
专家分:18
注 册:2013-3-9
收藏
得分:1 
fi.getdata(a[100][100]);
 se.getdata(b[100][100]);
改成:
fi.getdata(a]);
se.getdata(b);
即可
2013-06-14 20:39
末明黑夜
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2013-6-13
收藏
得分:1 
你这个数组没办法结束啊,还是要输入【100】【100】才能结束?
我按楼上的改了,然后运行了一下,没有得到这个程序想要的结果,你试试用指针?
2013-06-14 21:36
潇翊
Rank: 3Rank: 3
来 自:湖北襄阳
等 级:论坛游侠
帖 子:39
专家分:131
注 册:2012-2-29
收藏
得分:1 
上来一大堆代码,一句注释都没有,也不说要实现什么算法,看的头都大了

神马都是浮云,技术才是王道!
2013-06-15 00:49
子楠
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:111
专家分:164
注 册:2013-4-9
收藏
得分:1 
六楼正解,这算法、、、、、
2013-06-15 15:37
快速回复:为什么运行错误了,各位高手求解
数据加载中...
 
   



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

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