主题:纠结!!!
我想从文件输出一段字符串,并对这些字符串进行处理,统计这段字符串有多少种字符,并且每种字符有多少个,输出时按字符的个数从小到大输出!
我写的程序的输出让我无语
·······纠结纠结啊
我是把a[26]存放a~~z,b[26]存放每种字母的个数,当然有的元素有可能为0,
然后我打标记的那一段代码是想把b数组中0的元素去掉。
#include<iostream>
#include<fstream>
#include <cstdlib>
#include<iomanip>
using namespace std;
void main()
{char a[26];
int b[26];
int i;
ifstream fin;
fin.open("file.dat");
if(fin.fail())
{cout<<"Input file opening failed.\n";
exit(1);
}
char next,v;
fin.get(next);
while(next!='.')
{
cout<<next;
if(next==' ')
{ cout<<" ";
fin.get(next);
continue;
}
v=next;
i=int(next-'0');
i=i-97;
a[i]=v;
b[i]++;
fin.get(next);
}
fin.close();
int n=0;
[color=FF00FF]for(i=0;(b[i]!=0)&&(i<26);i++)
{a[n]=a[i];
b[n]=b[i];
n++;
}[/color] int j,k,t;
char d;
for(j=0;j<25;j++)
for(k=0;k<25-j;k++)
if(b[k]<b[k+1])
{
d=a[k];a[k]=a[k+1];a[k+1]=d;
t=b[k];b[k]=b[k+1];b[k+1]=t;
}
cout<<"\nLetter Number of Ouccorance"<<endl;
for(i=0;i<n-1;i++)
cout<<setw(10)<<a[i]<<setw(10)<<b[i]<<endl;
}
我写的程序的输出让我无语
·······纠结纠结啊
我是把a[26]存放a~~z,b[26]存放每种字母的个数,当然有的元素有可能为0,
然后我打标记的那一段代码是想把b数组中0的元素去掉。
#include<iostream>
#include<fstream>
#include <cstdlib>
#include<iomanip>
using namespace std;
void main()
{char a[26];
int b[26];
int i;
ifstream fin;
fin.open("file.dat");
if(fin.fail())
{cout<<"Input file opening failed.\n";
exit(1);
}
char next,v;
fin.get(next);
while(next!='.')
{
cout<<next;
if(next==' ')
{ cout<<" ";
fin.get(next);
continue;
}
v=next;
i=int(next-'0');
i=i-97;
a[i]=v;
b[i]++;
fin.get(next);
}
fin.close();
int n=0;
[color=FF00FF]for(i=0;(b[i]!=0)&&(i<26);i++)
{a[n]=a[i];
b[n]=b[i];
n++;
}[/color] int j,k,t;
char d;
for(j=0;j<25;j++)
for(k=0;k<25-j;k++)
if(b[k]<b[k+1])
{
d=a[k];a[k]=a[k+1];a[k+1]=d;
t=b[k];b[k]=b[k+1];b[k+1]=t;
}
cout<<"\nLetter Number of Ouccorance"<<endl;
for(i=0;i<n-1;i++)
cout<<setw(10)<<a[i]<<setw(10)<<b[i]<<endl;
}