c++中 求两个数集的并集时,怎样输入这两个大小不确定的数集??请多多指教!
若事先定义a[100],b[100]来存放输入的两个数集,又该如何用while循环输入数组元素??...
若事先定义a[100],b[100]来存放输入的两个数集,
又该如何用while循环输入数组元素?? 展开
又该如何用while循环输入数组元素?? 展开
展开全部
可以先要求用户输入各个数集的大小啊
比如数集a的大小为N,则输入可以这么写
int i = 0;
while(i < N)
{
cin>>a[i];
i++;
}
当然也可以加一些cout输出一些提示
另外也可以约定输入一个什么数字表示结束,比如如果要求数集的元素都是正数,则可以约定输入-1时表示数集输入结束,但此种方法对含有负数的数集就不起作用了
int i =0;
cin>>a[i];
while(a[i] != -1)
{
i++;
if(i == 100)
break;
cin>>a[i];
}
这个执行完之后,记得要把i保存起来,i大小就是这个数集的大小
比如数集a的大小为N,则输入可以这么写
int i = 0;
while(i < N)
{
cin>>a[i];
i++;
}
当然也可以加一些cout输出一些提示
另外也可以约定输入一个什么数字表示结束,比如如果要求数集的元素都是正数,则可以约定输入-1时表示数集输入结束,但此种方法对含有负数的数集就不起作用了
int i =0;
cin>>a[i];
while(a[i] != -1)
{
i++;
if(i == 100)
break;
cin>>a[i];
}
这个执行完之后,记得要把i保存起来,i大小就是这个数集的大小
追问
这是那个程序 输入完数组后的一段程序,运行结果不对,麻烦看一下。多谢!!
bool flag=true;
int m=j-1;
int n=j;
for(i=i-1;i>=0;i--)
{
for(j=m;j>=0;j--)
{
if(a[i]=b[j])
{
flag=false;
break;
}
}
if(flag)
b[n++]=a[i];
}
for(j=0;j<=n-1;j--)
cout<<b[j]<<" ";
cout<<endl;
}
追答
flag在内层循环被设置为false之后没在外层循环里重新设置啊
for(i=i-1;i>=0;i--)
{
flag = true; //这儿要重新设置flag标志,否则flag就一直false了
for(j=m;j>=0;j--)
{
if(a[i]=b[j])
{
flag=false;
break;
}
}
if(flag)
b[n++]=a[i];
}
展开全部
int i=0;
while(i<100)
{
cin<<a[i];
cin<<b[i];
i++;
}
while(i<100)
{
cin<<a[i];
cin<<b[i];
i++;
}
追问
若输入的数组不一定是小于100个元素呢??
追答
int i=0;
int n;
cin<<n;
while(i<n)
{
cin<<a[i];
cin<<b[i];
i++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关于动态数组
int count;
cin>>count; // 输入数组长度
int *array1 = new int[count];
.......
// 最后的资源回收
delete[] array1;
其实完全可以将数据输入在文件里,然后读取数据,统计数组a有多少数据,建立动态数组;同样的方法建立B数组.
当然也可以按照楼上几位写的那样去输入~~视需求而定
还需要给你写下代码么~~
int count;
cin>>count; // 输入数组长度
int *array1 = new int[count];
.......
// 最后的资源回收
delete[] array1;
其实完全可以将数据输入在文件里,然后读取数据,统计数组a有多少数据,建立动态数组;同样的方法建立B数组.
当然也可以按照楼上几位写的那样去输入~~视需求而定
还需要给你写下代码么~~
更多追问追答
追问
不麻烦前辈了,多谢前辈不吝赐教!
追答
互相学习,祝你好运,有问题可以找我交流,coolchae@gmail.com Luke Chen
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-06
展开全部
一个数就输入a然后ctrl+d
两个数就输入a,b然后ctrl+d
#include <iostream>
using namespace std;
void print(int);
void print (int,int);
int main()
{
int a=NULL,b=NULL;
cout<<"Please input a number or two:"<<endl;
while(cin)
cin>>a>>b;
if(b==NULL)
print(a);
else
print(a,b);
return 0;
}
void print(int x)
{
cout<<x<<endl;
}
void print(int x,int y)
{
cout<<x<<' '<<y<<endl;
}
另外,站长团上有产品团购,便宜有保证
两个数就输入a,b然后ctrl+d
#include <iostream>
using namespace std;
void print(int);
void print (int,int);
int main()
{
int a=NULL,b=NULL;
cout<<"Please input a number or two:"<<endl;
while(cin)
cin>>a>>b;
if(b==NULL)
print(a);
else
print(a,b);
return 0;
}
void print(int x)
{
cout<<x<<endl;
}
void print(int x,int y)
{
cout<<x<<' '<<y<<endl;
}
另外,站长团上有产品团购,便宜有保证
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询