C++中,怎样输入多组数据后,处理完毕后一起输出多组数据的结果

这是我的程序,WOJ上1064这道题:
#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
int n;
int a[50000];
cin>>n;
for (int i=0;i<50000;i++)
a[i]=0;
for (int i=0;i<n;i++)
{
int temp;
cin>>temp;
a[temp]=temp;
}
for (int i=0;i<50000;i++)
{
if (a[i] != 0)
cout<<a[i]<<" ";
}
system("pause");
return 0;

}

比如我输入:
5
1 2 5 4 5
回车后输出结果:
1 2 4 5
但我想的效果是可以输入多组:
input:
5
1 2 5 4 5
2
1 2
output:
1 2 4 5
1 2

求指导~~嗷嗷~

#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
int n;
int a[50000];

while (cin>>n) //当没有n输入的时候结束循环,可以按 ctrl+z 来输入结束符EOF
{
for (int i=0;i<50000;i++)
a[i]=0;
for (int i=0;i<n;i++)
{
int temp;
cin>>temp;
a[temp]=temp;
}
for (int i=0;i<50000;i++)
{
if (a[i] != 0)
cout<<a[i]<<" ";
}
}

system("pause");
return 0;

}追问

先谢谢你。但是这段代码不是我想要的,我也写过。
当输完第一组:
5
1 2 5 4 5
回车之后,马上输出第一组的结果:
1 2 4 5
我想线不输出第一组的结果,等我把第二个case输进去之后,按ctrl + Z 后再输出两个case的结果。

追答

那就开多一个数组,保留之前的结果咯。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-12
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int n;
int j=0;
int sum=0;
int a[50000]={0};
int b[100]={0};
cout<<"请输入数组的个数,要退出请按非数字键!\n";
while(cin>>n)
{
b[j]=n;
j++;
for (int i=0;i<n;i++)
{
cin>>a[sum];
sum++;
}
}
sum=0;
for(j=0;b[j]!=0;j++)
{
for (int i=0;i<b[j];i++)
{
cout<<a[sum]<<" ";
sum++;
}
cout<<"\n";
}
system("pause");
return 0;
}
基本实现你的功能!
第2个回答  2012-10-12
在外层嵌套一个while死循环,一直循环,在循环内部判断是否满足中断的条件,具体方法很多,楼上的是其中一种
相似回答