好菜的大学生 2020-04-01 09:38 采纳率: 25%
浏览 1998

7-1 统计字符串中字母、数字、空格和其他字符的个数 (5分)运行超时

统计字符串中字母、数字、空格和其他字符的个数。
输入格式:

在一行中输入长度不超过40的字符串。
输出格式:

第一行中输出“zimu=x“

第二行中输出“shuzi=y“

第三行中输出“kongge=z”,

第四行中输出“qita=m” 所有结果均原样输出,没有列宽控制。
输入样例:

sd$2h b57 sA

输出样例:

zimu=6
shuzi=3
kongge=2
qita=1

我的代码:

#include <iostream>
using namespace std;
int main(){
    char a;
    int zm=0,sz=0,kg=0,qt=0;
         while ((a=getchar())!='\n')
         {
        if (a>='a'&&a<='z'||a>='A'&&a<='Z'){
            zm++;
        }
        else if (a>='0'&&a<='9'){
            sz++;
        }
        else if(a==' '){
            kg++;
        }
        else
            qt++;
    }
    cout<<"zimu="<<zm<<endl;
    cout<<"shuzi="<<sz<<endl;
    cout<<"kongge="<<kg<<endl;
    cout<<"qita="<<qt<<endl;
}

这咋会超时了呢

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-04-01 09:44
    关注

    你的程序没有看出什么问题,但是你修改为下面的看看

    #include <iostream>
    using namespace std;
    int main(){
        char a;
        int zm=0,sz=0,kg=0,qt=0;
        char input[50];
        scanf("%[^\n]", input);
        int i = 0;
             while ((a=input[i++])!=0)
             {
            if (a>='a'&&a<='z'||a>='A'&&a<='Z'){
                zm++;
            }
            else if (a>='0'&&a<='9'){
                sz++;
            }
            else if(a==' '){
                kg++;
            }
            else
                qt++;
        }
        cout<<"zimu="<<zm<<endl;
        cout<<"shuzi="<<sz<<endl;
        cout<<"kongge="<<kg<<endl;
        cout<<"qita="<<qt<<endl;
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)