主题:求高手指点
我写了一个程序,首先询问用户是从文件还是键盘输入数字
,根据用户的选择,把一组数字输出到屏幕,然后记录有多少种不同的数字,
并且输出每个数字有多少个,
如:1 2 3 4 5 2 4 1
我想要的输出是Number count
1 2
2 2
3 1
4 2
5 1
我写的不知哪错了,但我真的觉得没错,求指点:)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip>
using namespace std;
void main()
{int i=0;
int n,j,k=0;
int a[50],b[50];//a[50]用来存最初输入的数字,b[50]用来记录每种不同的数字有多少个重复
char x;
cout<<"Do you want to select printing from file or key?(f or k)\n";
cin>>x;
if(x=='f')
{ char next;
ifstream fin;
fin.open("file1.dat");
if(fin.fail())
{cout<<"Input file opening failed.\n";
exit(1);
}
fin.get(next);
while(!fin.eof())
{ cout<<next;
a[i]=next;
i++;
fin.get(next);
}
fin.close();
// i=i-1;
cout<<endl;
}
else if(x=='k')
{cout<<"enter the number of numbers:\n";
cin>>i;
cout<<"enter:\n";
for(n=0;n<i;n++)
cin>>a[n];}
else cout<<"error!\n";
for(n=0;n<i;n++)//我是从第一个数字开始,把后面跟它重复的赋值为0,并且记录下重复的次数
{b[n]=1;
for(j=n+1;j<i;j++)
while(a[n]==a[j])
{b[n]++;
a[j]=0;
}
}
cout<<setw(10)<<"Number"<<setw(10)<<"count"<<endl;
for(n=0;n<i;n++)//输出从第一个数开始,数组中不为0的数字和重复个数
if(a[n]!=0)
cout<<setw(10)<<a[n]<<setw(10)<<b[n]<<endl;
}
,根据用户的选择,把一组数字输出到屏幕,然后记录有多少种不同的数字,
并且输出每个数字有多少个,
如:1 2 3 4 5 2 4 1
我想要的输出是Number count
1 2
2 2
3 1
4 2
5 1
我写的不知哪错了,但我真的觉得没错,求指点:)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip>
using namespace std;
void main()
{int i=0;
int n,j,k=0;
int a[50],b[50];//a[50]用来存最初输入的数字,b[50]用来记录每种不同的数字有多少个重复
char x;
cout<<"Do you want to select printing from file or key?(f or k)\n";
cin>>x;
if(x=='f')
{ char next;
ifstream fin;
fin.open("file1.dat");
if(fin.fail())
{cout<<"Input file opening failed.\n";
exit(1);
}
fin.get(next);
while(!fin.eof())
{ cout<<next;
a[i]=next;
i++;
fin.get(next);
}
fin.close();
// i=i-1;
cout<<endl;
}
else if(x=='k')
{cout<<"enter the number of numbers:\n";
cin>>i;
cout<<"enter:\n";
for(n=0;n<i;n++)
cin>>a[n];}
else cout<<"error!\n";
for(n=0;n<i;n++)//我是从第一个数字开始,把后面跟它重复的赋值为0,并且记录下重复的次数
{b[n]=1;
for(j=n+1;j<i;j++)
while(a[n]==a[j])
{b[n]++;
a[j]=0;
}
}
cout<<setw(10)<<"Number"<<setw(10)<<"count"<<endl;
for(n=0;n<i;n++)//输出从第一个数开始,数组中不为0的数字和重复个数
if(a[n]!=0)
cout<<setw(10)<<a[n]<<setw(10)<<b[n]<<endl;
}