beishen7234 2016-08-30 07:42 采纳率: 75%
浏览 1498
已采纳

统计字符1的个数 效率低下

#include "stdio.h"
#include "string.h"
#define maxn 10000000 + 10
int main()
{
    char s[maxn];
        scanf("%s",s);
        int tot = 0;
        for (int i = 0;i<strlen(s);i++)
        {
            if (s[i] == '1')
                    tot++;
        }
        printf("%d\n",tot);
}

书上的思考题,说是这段代码一个地方导致效率低下,请指出是哪里,我实在看不出哪里可以再快了。

  • 写回答

3条回答 默认 最新

  • 看得到你的人头 2016-08-30 09:00
    关注

    当你输入的字符串较小时,可能也没啥区别,但当输入的字符串较大时,for循环里的 i<strlen(s)中的strlen(s)要执行很多次,导致效率低。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?