统计字符1的个数

下面的程序意图在于统计字符串中字符1的个数,可惜有瑕疵:

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);return 0;}该程序至少有3个问题,其中一个导致程序无法运行,另一个导致结果不正确,还有一个导致效率低下。你能找到它们并改正吗?

发现的错误:

猜测的错误: – strlen虽然很高效,但是每次都需要计算一次,当数组非常大时,,可能会影响效率。 改正如下:

s[maxn];int main(){int tot, len;while(scanf(“%s”, s) == 1 ){tot = 0;len = strlen(s);for(int i = 0; i < len; i++)if(s[i] == ‘1’)tot ++;printf(“%d\n”, tot);}return 0;}

“人无完人金无足赤”,只要是人就不会是完美的,

统计字符1的个数

相关文章:

你感兴趣的文章:

标签云: