求助大佬,全错了,烦,但是我觉得思维准确无误,代码里有注释
查看原帖
求助大佬,全错了,烦,但是我觉得思维准确无误,代码里有注释
916027
qew12312楼主2023/1/5 09:45
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main()
	{int e[30],qw,er,rt,i;
	char a[201],b[201],c[201],d[201];
		cin.getline(a,201,'\n');
		cin.getline(b,201,'\n');
		cin.getline(c,201,'\n');
		cin.getline(d,201,'\n');//输入
		for(i=0;i<30;i++) e[i]=0;
	for(i=0;i<strlen(a);i++) if(a[i]>='A'&&a[i]<='Z') e[a[i]-'A']++;
	
		for(i=0;i<strlen(b);i++) if(b[i]>='A'&&b[i]<='Z') e[b[i]-'A']++;
		
			for(i=0;i<strlen(c);i++) if(c[i]>='A'&&c[i]<='Z') e[c[i]-'A']++;
				
				for(i=0;i<strlen(d);i++) if(d[i]>='A'&&d[i]<='Z') e[d[i]-'A']++;
   //将字母数量存到数组e中            
	char we[200][30];
	qw=e[0];
	for(i=1;i<26;i++) qw=max(qw,e[i]);//求出最大的值
	er=qw;
	for(i=1;i<=er;i++){
		for(rt=0;rt<26;rt++){
			if(e[rt]==qw) {
				we[i][rt]='*';
				e[rt]--;
			}
			else we[i][rt]=' ';
		} 	qw--;}//从第一行逐行开始赋值
		for(i=1;i<=er;i++){
		for(rt=0;rt<26;rt++){cout<<we[i][rt];}}	//写到这里发现输出的*分布不均
return 0;}

2023/1/5 09:45
加载中...