|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- #include<ctype.h>
- #include<string.h>
- #include<time.h>
-
- #define N 100005
- int main()
- {
- /*char str[N];
- scanf("%s",str);
- int len=strlen(str),sum=0;
- for(int i=0;i<len;i++){
- int temp=tolower(str[i])-96;
- if(temp>=1&&temp<=26) sum+=temp;
- }
- int one=0,zero=0;*/
- char c;
- int sum=0,one=0,zero=0;
- scanf("%c",&c);
- while(c!='\n'){
- int temp=tolower(c)-96;
- if(temp>=1&&temp<=26) sum+=temp;
- scanf("%c",&c);
- }
- while(sum!=0){
- if(sum%2==1) one++;
- else zero++;
- sum/=2;
- }
- printf("%d %d",zero,one);
- return 0;
- }
复制代码
注释掉的就是读一整个字符串,但是测试点0和4过不了
本帖最后由 sunrise085 于 2020-5-13 15:44 编辑
知道问题出在哪儿了。
给定的字符串包含空格,但是你用字符串函数的话,scanf用%s读取字符串时,该函数以空白符(空格、回车、tab、'\0')为字符串的结束符,所以遇到空格,它认为字符串结束了,所以计算出来的len值不对。
|
|