白糖894 2021-11-30 15:38 采纳率: 76.9%
浏览 30
已结题

运行超时了怎么改啊?

单词首字母大写
输入一个英文句子,要求将每个单词的首字母改成大写字母。
输入格式:

测试数据有多组,处理到文件尾。每组测试输入一行,包含一个长度不超过100的英文句子(仅包含大小写英文字母和空格),单词之间以一个空格间隔。

输出格式:

对于每组测试,输出按照要求改写后的英文句子。

输入样例:

I like acm
i want to get accepted
输出样例:

I Like Acm
I Want To Get Accepted
出处:

HDOJ 2026

#include"stdio.h"
main(){
char str[1000],max;
int i,a,t;
while(gets(str)!=EOF){
t=strlen(str);
max=str[0];
for(i=0;i<t;i++){
if(max<str[i]){
max=str[i];
}
}
for(i=0;i<t;i++){
printf("%c",str[i]);
if(str[i]==max)
printf("(max)");
}
puts(" ");
}
}

  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-11-30 16:10
    关注
    #include<stdio.h>
    #include<string.h>
    int main() {
        char str[1000], word[100];
        int i, j, t;
        while(gets(str)) {
            t = strlen(str);
            j = 0;
            memset(word, 0, sizeof(word));
            for(i = 0; i < t; i++) {
                if(str[i] != ' ') {
                    word[j++] = str[i];
                } else {
                    if(word[0] >= 'a' && word[0] <= 'z') {
                        word[0] -= 32;
                    }
                    printf("%s ", word);
                    memset(word, 0, sizeof(word));
                    j=0;
                }
            }
            if(word[0] >= 'a' && word[0] <= 'z') {
                word[0] -= 32;
            }
            printf("%s\n", word);
        }
        return 0;
    }
    

     觉得有用的话采纳一下哈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月8日
  • 已采纳回答 11月30日
  • 创建了问题 11月30日