写一个程序,将一个整数列表读入基类型为int的一个数组,要求从键盘读入这个数组,假定数组中的数据少于50个。你的程序要判断实际有多少个数据项,最终输出的是一个双栏列表,第一栏是数组元素列表,其中包含不重复的数据元素值;第二栏是每个元素值出现的次数统计。且列表在第一栏应该按从小到大的顺序排列。 
例如假定输入:-1,2,3,-12,4,1,1,-12,1,-1,2,3,4,2,3,-12 
输出应该是: 
N Counts 
4 2 
3 3 
2 2 
1 4 
-1 1 
-12 4 




我是通过一个数0的是否输入来判断是否数列已经读取完毕。下面是我的程序,虽然没有正确显示结果。您能指示一下错误就更好了! 
#include <iostream> 
#include <iomanip> 
using namespace std; 
void main() 

int a[50];int q=0; 
cout<<"请输入一个数列。0代表输入中止"<<endl; 
for (int i=0;i<50;i++) 

cin>>a[i]; 
if(a[i]==0) break; 

int b[2][50]; 
for (int t=0;t<i;t++) 

b[1][t]=1;b[0][t]=0; 


for (int j=0;j<i;j++) 


for (int z=0;z<j;z++) 

if (a[j]!=b[0][z]) 

b[0][q]=a[j]; 

else 

b[1][z]++; 



cout<<setw(10)<<"N"<<setw(10)<<"Counts"<<endl; 
for(int z1=0;z1<=q;z1++) 
cout<<setw(8)<<b[0][z1]<<setw(8)<<b[1][z1]<<endl; 

}