| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 515 人关注过本帖
标题:下面程序有错误提示.原因是什么呢
只看楼主 加入收藏
舞动
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-7-25
收藏
 问题点数:0 回复次数:6 
下面程序有错误提示.原因是什么呢

#include<iostream.h>
#define MAX 100
typedef struct
{
int data[MAX];
int length;
}sqlist;
sqlist LA,LB,LC;
sqlist A,B;
int Merge( A,B)
{
int i=0;j=0;k=0;
LC.length=LA.length+LB.length;
while((i<A.length)&&(j<B.length))
{
if(A.data[i]<=B.data[j])
{
LC.data[k]=A.data[i];
cout<<LC.data[k]<<endl;
i++;
k++
}
else
{
LC.data[k]=B.data[j];
cout<<LC.data[k]<<endl;
j++;
k++;
}
}
while(i<A.length)
{
LC.data[k]=A.data[i];
i++;
k++;
}
while(j<B.length)
{
LC.data[k]=B.data[j];
j++;
K++;

}
return(1);

}
void main()
{
sqlist LA,LB,LC;
int i,j,k;
cout<<"请输入线形表A";
cout<<endl;
for(i=0;i<LA.length;i++)
cin>>LA.data[i];
cout<<"请输入线形表B";
cout<<endl;
for(j=0;j<LB.length;j++)
cin>>LB.length;
Merge(LA,LB);
cout<<"请输入合并后的表";
cout<<endl;
for(k=0;k<LC.length;k++)
cout<<LC.data[k];
}

E:\课程全部\C++\Cpp2.cpp(59) : error C2065: 'Merge' : undeclared identifier
error C2065: 'Merge' : undeclared identifier

搜索更多相关主题的帖子: 提示 
2007-07-27 19:18
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 
#include<iostream.h>
#define MAX 100
typedef struct
{
int data[MAX];
int length;
}sqlist;
sqlist LA,LB,LC;
sqlist A,B;
int Merge( sqlist A, sqlist B ) // must to show what's the type of parameter to the compiler
{
int i=0,j=0,k=0; // use ';' to replace ','
LC.length=LA.length+LB.length;
while((i<A.length)&&(j<B.length))
{
if(A.data[i]<=B.data[j])
{
LC.data[k]=A.data[i];
cout<<LC.data[k]<<endl;
i++;
k++;
}
else
{
LC.data[k]=B.data[j];
cout<<LC.data[k]<<endl;
j++;
k++; // miss ;
}
}
while(i<A.length)
{
LC.data[k]=A.data[i];
i++;
k++;
}
while(j<B.length)
{
LC.data[k]=B.data[j];
j++;
k++;

}
return(1);

}
void main()
{
sqlist LA,LB,LC;
int i,j,k;
cout<<"请输入线形表A";
cout<<endl;
for(i=0;i<LA.length;i++)
cin>>LA.data[i];
cout<<"请输入线形表B";
cout<<endl;
for(j=0;j<LB.length;j++)
cin>>LB.length;
Merge(LA,LB);
cout<<"请输入合并后的表";
cout<<endl;
for(k=0;k<LC.length;k++)
cout<<LC.data[k];
}

计算机之路是痛苦并快乐着的!!
2007-07-27 19:48
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 

出错原因 在写函数merge的时候 参数类型没有说明,编译器在运行的时候认为你在main的中的
merge与你说写的是两个函数应为c++支持重载,所以他认为你在main中的merge没有定义。
将int Merge( A, B )修改成int Merge( sqlist A, sqlist B )后问题解决。


计算机之路是痛苦并快乐着的!!
2007-07-27 19:52
舞动
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-7-25
收藏
得分:0 
现在的确编译没有问题了
可是却不能输入值
这需要怎么改呢
2007-07-27 21:18
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 
#include<iostream.h>
#define MAX 100
typedef struct
{
int data[MAX];
int length;
}sqlist;
sqlist LA,LB,LC;
//sqlist A,B;
int Merge( sqlist A, sqlist B ) // must to show what's the type of parameter to the compiler
{
int i=0,j=0,k=0; // use ';' to replace ','
LC.length=LA.length+LB.length;
while((i<A.length)&&(j<B.length))
{
if(A.data[i]<=B.data[j])
{
LC.data[k]=A.data[i];
cout<<LC.data[k]<<endl;
i++;
k++;
}
else
{
LC.data[k]=B.data[j];
cout<<LC.data[k]<<endl;
j++;
k++; // miss ;
}
}
while(i<A.length)
{
LC.data[k]=A.data[i];
i++;
k++;
}
while(j<B.length)
{
LC.data[k]=B.data[j];
j++;
k++;

}
return(1);

}
void main()
{
// sqlist LA,LB,LC;
cin>>LA.length;
cin>>LB.length;
int i,j,k;
cout<<"请输入线形表A";
cout<<endl;
for(i=0;i<LA.length;i++)
cin>>LA.data[i];
cout<<"请输入线形表B";
cout<<endl;
for(j=0;j<LB.length;j++)
cin>>LB.data[j];
Merge(LA,LB);
cout<<"请输入合并后的表";
cout<<endl;
for(k=0;k<LC.length;k++)
cout<<" "<<LC.data[k];
}

不能输入是因为你为给表的长度赋值啊!!给你改了下。你写的合并函数你的本意是要怎样来合并啊?我不知道 如果是要合并成从小到大的表的话,你应该在合并前将a,b表排序 。

计算机之路是痛苦并快乐着的!!
2007-07-28 01:06
yushui
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:1355
专家分:22
注 册:2006-7-19
收藏
得分:0 

楼主的lengh不知道长度 开始


fighting!from now on!
2007-07-28 08:35
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
merge函数原型,参数类型错误。
length的值从头到尾未知。

Fight  to win  or  die...
2007-07-28 10:32
快速回复:下面程序有错误提示.原因是什么呢
数据加载中...
 
   



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

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