*HDoj 2025 查找最大元素

Problem Description
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
 
Input
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。
 
Output
对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
 
Sample Input
abcdefgfedcba xxxxx
 
Sample Output
abcdefg(max)fedcba x(max)x(max)x(max)x(max)x(max)
 
Author
lcy
 
Source
 
Recommend
lcy   |   We have carefully selected several similar problems for you:   2027  2026  2031  2032  2033 
 
本题注意
1不用考虑字母大小写,单纯的比较ASIIC码
2注意codeblocks的断点调试,如果项目路径包含中文,遇到断点处不会停,所以项目路径要是全英文。
3在定义数组存储字符串的时候,最好用  void *memset(void *str, int c, size_t n)初始化一下,防止把里面未赋值的'\0'当作字符串终止符,错误判断了字符串长度,(也就是最好初始化成不是'\0'的ASIIC码)
 
C语言代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
    char s[300];
    memset(s,123,300);
    while(scanf("%s",s)!=EOF)
    {
        getchar();
        char temp='A';
        for(int i=0;s[i]!='\0';i++)
            if(s[i]>temp)
                temp=s[i];

        for(int i=0;s[i]!='\0';i++)
        {
            if(s[i]==temp)
            {
                for(int j=strlen(s);j>=i+1;j--)
                    s[j+5]=s[j];
                s[++i]='(';
                s[++i]='m';
                s[++i]='a';
                s[++i]='x';
                s[++i]=')';
            }
        }
        printf("%s\n",s);
    }
}

猜你喜欢

转载自www.cnblogs.com/wzmm/p/12581940.html