OJ刷题之《字母的争论》

题目描述

某一天,26个小写的英文字母争论了起来,它们都想当老大,闹得不可开交。这时逗比的小甲想到了一个好办法使它们平息了下来,规则是这样的:读入一行仅由小写英文字母组成的字符串,统计这26个小写英文字母在这串字符中出现的次数,谁出现的此数多谁就是老大。另外,没有出现在这串字符中的小写英文字母就只能甘拜下风了。虽然这种办法对有些字母有些不公平,但是大家还是硬着头皮接受了。那么好了,现在问题来了,聪明的你就编道程序帮它们解决吧。

输入

一行仅由小写英文字母组成的字符串,不包含其他的各类字符。

输出

输出出现次数最多的字母和次数,如果出现次数相同则输出ASCII码大的

样例输入

goodgoodstudydaydayup

样例输出

d:5

代码如下:

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    char str[100];
    int num[100],i,j,k=0,d;
    d=0;
    gets(str);
    for (i=0; str[i]!='\0'; i++)
    {
        for (j=0; str[j]!='\0'; j++)
        {
              if (str[j]==str[i])
                k++;
        }
        num[i]=k;
        k=0;
    }
    for (i=0;str[i]!='\0';i++)
    {
        if (num[0]<num[i])
        {
            num[0]=num[i];
            d=i;
        }
    }
    cout<<str[d]<<":"<<num[d];
    return 0;
}

运行结果:

开始没读懂题目意思,脑筋也没有转过弯来,傻乎乎的将26个字母用switch语句列出来然后num[26]统计字符个数,用另外一个变量输入字符,最后输出的时候,出题人也不厚道,第四个字母刚好是d,对应的num[3]刚好是第四位且最大,然后就...wrong answer了。。。再度冥思苦想,最后还是靠学长的提示下做了出来。

时间: 2024-11-05 07:09:51

OJ刷题之《字母的争论》的相关文章

OJ刷题之《输出不同进制的数》

题目描述 将十进制数1234按十进制输出 将八进制数1234按八进制输出 将十六进制数1234按十六进制输出 输入 无 输出 将十进制数1234按十进制输出 将八进制数1234按八进制输出 将十六进制数1234按十六进制输出 样例输入 无 样例输出 1234=1234D 01234=1234O 0x1234=1234H 提示 使用输出格式控制符 dec     oct     hex 输出第二行 01234=1234O    1234前是数字0,1234后是大写字母O 代码如下: #includ

OJ刷题之《输出A字打头的字符串》

Description 输出n个字符串,把其中以字母A打头的字符串输出. Input 第一行 n 第二行到第n+1行,每行一个字符串 Output A打头的字符串 Sample Input 3 Ada Bob Alice SampleOutput Ada Alice 代码如下: #include <iostream> #include <cstring> using namespace std; int main() { int i,n; string str[10]; cin&g

OJ刷题常用的4中基本输入形式

初到OJ网站上刷题,输入形式就是我们要考虑的问题.通过自己的一些摸索,OJ题目的输入形式大体上无外乎4种.下面就详细介绍: 1 输入数据文件中,第一行数据标明了测试数据的数目: 2 输入数据文件中,有标明输入结束的数据 3 输入数据文件中,测试数据一直到文件尾 4 没有输入数据 第1中情形的处理方法: //int i,kase scanf("%d",&kase); for(i=1;i<=kase;i++) { //处理第i中情况 } ...................

OJ刷题之《成绩输出》

Description 输入n(<=10)个学生的姓名.学号和成绩,将其中不及格者的姓名.学号和成绩输出. Input 第一行 n 第二行到第n+1行,每行一个学生的姓名.学号和成绩. Output 不及格者的姓名.学号和成绩. Sample Input 3 zhang 1001 100 li 1002 59 sun 1003 0 SampleOutput li 1002  59 sun 1003  0 代码如下: #include <iostream> using namespace

OJ刷题之《输入三个整数,按由小到大的顺序输出》

题目描述 输入三个整数,按由小到大的顺序输出.分别使用指针和引用方式实现两个排序函数.在主函数中输入和输出数据. 输入 三个整数 输出 由小到大输出成一行,每个数字后面跟一个空格.由指针方式实现. 由小到大输出成一行,每个数字后面跟一个空格.由引用方式实现. 样例输入 2 3 1 样例输出 1 2 3 1 2 3 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C++代码 */ int main() { void sort1(int *,int *,int *); void sort2

第十五周oj刷题——Problem E: C++习题 对象数组求最大值

Description 建立一个对象数组,内放n(<10)个学生的数据(学号.成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出n个学生中成绩最高者,并输出其学号. Input n和n个学生的学号.成绩 Output 成绩最高者的学号和成绩 Sample Input 5 101 78.5 102 85.5 103 98.5 104 100.0 105 95.5 Sample Output 104 100.00 /* All rights reserved. * 文件名称:

基于C#解决OJ刷题之输入输出问题的总结(AKOJ1064-1071A+B问题汇总)

声明:题目部分为akoj题目,代码为本人AC代码. 因为本人学校的oj支持各种环境,非常正常的当中就包括了C#.然暑假在家较为空暇,本着学习C#和复习算法的态度和目的,就又開始折腾起oj了. 题目部分是最基础的A+B系列,来看看C#的输入输出是怎么一回事吧 题目地址:http://183.167.205.82:8081/JudgeOnline/problemlist?volume=1 本文由csdn-jtahstu原创.转载请注明出处,欢迎志同道合的朋友一起交流学习.本人QQ:137375842

第十五周oj刷题——Problem I: C++ 习题 比较大小-类模板

Description 声明一个类模板,利用它分别实现两个整数.浮点数和字符的比较,求出大数和小数.说明:在类模板外定义各成员函数. Input 输入两个整数.两个浮点数和两个字符 Output 从大到小输出两个整数.两个浮点数和两个字符 Sample Input 3 7 45.78 93.6 a A Sample Output 7 3 93.60 45.78 a A   /* All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年

oj刷题——第十五周C++习题 对象转换

Description 定义一个Teacher(教师)类(教师号,姓名,性别,薪金)和一个Student(学生)类(学号,姓名,性别,成绩),二者有一部分数据成员是相同的,num(号码),name(姓名),sex(性别).编写程序,将一个Student对象(学生)转换为Teacher(教师)类,只将以上3个相同的数据成员移植过去.可以设想为: 一位学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的,应当保留并成为其教师数据的一部分. Input 一个教师的信息和一个学

第十五周oj刷题—— Problem C: 矩形类中运算符重载【C++】

Description 定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数.输入坐标的函数,实现矩形加法,以及计算并输出矩形面积的函数.要求使用提示中给出的测试函数并不得改动. 两个矩形相加的规则是:决定矩形的对应坐标分别相加,如 左下角(1,2),右上角(3,4)的矩形,与 左下角(2,3),右上角(4,5)的矩形相加,得到的矩形是 左下角(3,5),右上角(7,9)的矩形. 这个规则没有几何意义,就这么定义好了. 输出面积的功能通过重载"<<&quo