C++编程练习10--统计大写字母出现的次数,次数多的先输出

问题

输入一串字符串,以“$”结束,分别统计各大写字母出现的次数,并按字母出现的多少输出(先输出出现次数多的,次数相同的按照字母表输出,不出现的字母不输出)。

算法思想

  1. while(1)循环输入一个字符串,用length统计长度,当length超出数组大小或者出现$时,停止输入。
  2. 计数清零,依次统计出现的大写字母的次数,存入到num数组中
  3. 遍历num数组,找到最大的值max,即出现次数最多的字母输出,依次输出,每输出一个所在位置清零,直到全部输出
#include
using namespace std;
int main(){
	int num[26];
	char ch[100];
	for(int i=0;i<26;i++){
		num[i]=0;//计数清零 
	}
	int length=0;
	cout<<"请输入一串字符:"; 
	while(1){
		cin>>ch[length];
		length++;
		if(length>100||ch[length-1]=='$') break;
	}
	for(int i=0;i<length;i++){
		if(ch[i]>='A'&&ch[i]<='Z'){
			num[(ch[i]-'A')]++;//统计字符 
		}
	}
	//找出现次数最多的打印
	//aAAAYYYYuiOOOOOBBFC23$ 
	for(int i=0;i<26;i++)
	{
		int max=0;
		for(int j=0;j<26;j++){
			if(num[j]>num[max]){
			max=j;
		  }  
		}
		if(num[max]!=0){
			cout<<char(max+'A')<<":"<<num[max]<<endl;
			num[max]=0;
	    }else break;
	 } 
	return 0;
}

C++编程练习10--统计大写字母出现的次数,次数多的先输出_第1张图片

收获

如何输出出现次数最多的
for(int i=0;i<26;i++)
{
int max=0;
for(int j=0;j<26;j++){
if(num[j]>num[max]){
max=j;
}
}

	if(num[max]!=0){
		cout<

你可能感兴趣的:(C++,c++,算法,开发语言)