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

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 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛