主题:菜鸟求教一个关于数列的编程简单问题
写一个程序,将一个整数列表读入基类型为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;
}
例如假定输入:-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;
}