本地能过但到了平台上紫了4个
查看原帖
本地能过但到了平台上紫了4个
855093
0x00AC3375楼主2023/2/14 23:58

如果是行末的空格问题的话应该会WA的但是居然RE了

#include<cstdio>
int count[30]={0};//统计26个英文字母的出现频次,用0-25表示AtoZ 
int figure[410][30];//400行26列
int max;//最大的频数决定了柱状图的高度 
char line1[110],line2[110],line3[110],line4[110];//四个字符串 
int main()
{
	int i=0,max=-1,j=0;
	while((line1[i]=getchar())!=10) i+=1;//10表示换行 
	line1[i]='\0';i=0;
	while((line2[i]=getchar())!=10) i+=1;
	line2[i]='\0';i=0;
	while((line3[i]=getchar())!=10) i+=1;
	line3[i]='\0';i=0;
	while((line4[i]=getchar())!=10) i+=1;
	line4[i]='\0';i=0;//读入4行字符串 
	for(i=0;line1[i]!='\0';i++)
	{
		if(line1[i]>=65 && line1[i]<=90) 
		{
			count[line1[i]-65]+=1;//统计数量+1 
		}
	}
	for(i=0;line2[i]!='\0';i++)
	{
		if(line2[i]>=65 && line2[i]<=90) 
		{
			count[line2[i]-65]+=1;//统计数量+1 
		}
	}
	for(i=0;line3[i]!='\0';i++)
	{
		if(line3[i]>=65 && line3[i]<=90) 
		{
			
			count[line3[i]-65]+=1;//统计数量+1 
		}
	}
	for(i=0;line4[i]!='\0';i++)
	{
		if(line4[i]>=65 && line4[i]<=90) 
		{
			count[line4[i]-65]+=1;//统计数量+1 
		}
	}
	for(i=0;i<=25;i+=1)
	{
		if(max<count[i]) max=count[i];
	}
	for(i=0;i<=25;i+=1)
	{
		for(j=0;j<=count[i]-1;j+=1)
		{
			figure[j][i]=1;//对应数量的1 
		}
	}
	for(j=max-1;j>=0;j-=1)
	{
		for(i=0;i<=25;i+=1)
		{
			printf("%c ",figure[j][i]==1 ? '*' : 32);//对应位置为1时输出星号,否则输出空格 
		}
		printf("\n");
	}
	for(i=65;i<=90;i++) printf("%c ",i); //一行大写字母 
	return 0;
} 
2023/2/14 23:58
加载中...