次数差(C语言) 秒速五厘米 2022-03-02 02:35 154阅读 0赞 **次数差** x星球有26只球队,分别用a~z的26个字母代表。他们总是不停地比赛。 在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。 国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了) 输入,一个串,表示球队获胜情况(保证串的长度 < 1000) 要求输出一个数字,表示出现次数最多的字母比出现次数最少的字母多了多少次。 比如: 输入: abaabcaa 则程序应该输出: 4 解释:a出现5次,最多;c出现1次,最少。5 - 1 = 4 再比如: 输入: bbccccddaaaacccc 程序应该输出: 6 **程序代码如下:** #include<stdio.h> #include<string.h> int main() { char arr[1000]; int count[26],i,j; scanf("%s",&arr); int len=strlen(arr); int Max = 0,Min = len; memset(count,0,sizeof(int)*26); //count初始化为0 for(i = 0 ; i < len ; i++) //统计26个字母的次数 { for(j=0;j<26;j++) { if(arr[i] == 'a' + j) { count[j]++; break; } } } for(j = 0 ; j < 26 ; j++) //找寻最大值与最小值 { if(Max < count[j] && count[j] != 0) { Max = count[j]; } if(Min > count[j] && count[j] != 0) { Min = count[j]; } } printf("%d",Max-Min); return 0; } **运行效果截图:** ![在这里插入图片描述][20190319154253651.png] [20190319154253651.png]: /images/20220302/ac9c4e0d62534837a3ff9b3bf8cc363b.png
还没有评论,来说两句吧...