#include<stdio.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);
}
以上是错误代码
有三个以上的错误。
我自己是这么改的
#include <stdio.h>
#include<string.h>
#define maxn 102
int main()
{
char s[maxn];
scanf("%s",s);
int tot=0,i;
for( i=1;s[i]!='\0';i++)
if(s[i]=='1')
tot++;
printf("%d\n",tot);
return 0;
}
1.看了贴吧有人说 i<strlen(s);i++ 导致效率低下,我就加了个头文件,#include<string.h>,但没什么用,太大了 建议改成s[i]!='\0',今天知道这个的用法了,还挺高兴。。。以前只看见过别人的题解这么用。
2.我也是老犯这些毛病,s这个数组是字符型,s[i]==1不对,除非是整型。可以这么改s[i]=='1' 或者s[i]-'0'=1均可。
3.max定义太大了,改不了,就随便缩小了。
4.我的不可以直接在for语句里面直接定义,我就提出来了。
睡了好久的觉,上午又没看什么书,也没敲代码。
中午睡觉又破天荒的睡着了,结果一觉起来4点左右了,不是蓉蓉推我我可能要睡到吃饭吧。模模糊糊我梦见好像过年了,噼里啪啦的好像是鞭炮声,想来可能是大佬们在努力敲代码的声音吧,有些安心又有些惭愧。今天状态不错,至少中午还睡着了,昨天中午一闭眼就是想起了自己没有过六级笔试的事情,大家都过了,除了我。昨天和学长交流了一下,学长也没过六级,我打算认认真真扎扎实实的要过六级。我看了自己的成绩,笔试349,唉,少的可怜,口语c+。口语勉勉强强过了,我今年12月份还想要再考一次,实在觉得要过六级不然心里膈应的慌。
唉,大家都是大一就过了四六级,到了我这里好像就例外了一样。