当前位置:   article > 正文

zzulioj1150_zzulioj答案

zzulioj答案

   注:zzulioj前187题的答案上传到了github和gitee:github gitee


 数数多少个整数

题目描述

小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。

输入

输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。

输出

输出整数个数(不是数字字符个数哦)。

样例输入 Copy

365grh 27ha578

样例输出 Copy

3

提示

注意:010是两个数字,0和10

 正确解法:

  1. #include<stdio.h>
  2. #include<ctype.h>
  3. #include<string.h>
  4. int main()
  5. {
  6. char c[1000];
  7. gets(c);
  8. int sum=0;
  9. for(int i=0;i<(int)strlen(c);i++)
  10. {
  11. if(isalpha(c[i]!=0)||c[i]==' ')//如果是字母或空格,重新来(例如fsi fjs)
  12. continue;
  13. if(c[i]=='0')//如果是字母0则为一次计数(例如010
  14. {
  15. sum++;
  16. continue;
  17. }
  18. if(c[i]>48&&c[i]<58)//如果是除0以外的数字则
  19. {
  20. sum++;//不管后面是什么,都一定是一次计数
  21. for(i++;i<(int)strlen(c);i++)
  22. {
  23. if(isalpha(c[i])!=0||c[i]==' ')//直到碰到字母或空格,本轮计数完毕
  24. break;
  25. }
  26. }
  27. }
  28. printf("%d",sum);
  29. return 0;
  30. }

另外,我还有一种写法,跟上面的差不多(两种写法的判断末尾整数的方式不同),但结果是错的,我不知道哪里有问题,请教各位大佬

  1. #include<stdio.h>
  2. #include<ctype.h>
  3. #include<string.h>
  4. int main()
  5. {
  6. char c[1000];
  7. gets(c);
  8. int sum=0;
  9. for(int i=0;i<(int)strlen(c);i++)
  10. {
  11. if(isalpha(c[i]!=0)||c[i]==' ')
  12. continue;
  13. if(c[i]=='0')
  14. {
  15. sum++;
  16. continue;
  17. }
  18. if(c[i]>48&&c[i]<58)
  19. {
  20. for(i++;i<(int)strlen(c);i++)
  21. {
  22. if(isalpha(c[i])!=0||c[i]==' ')
  23. {
  24. sum++;
  25. break;
  26. }
  27. }
  28. }
  29. }
  30. if(c[strlen(c)-1]>48&&c[strlen(c)-1]<58)//如果末尾是除0以外的数字
  31. sum++;
  32. printf("%d",sum);
  33. return 0;
  34. }

这是oj给的错误提示

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/143750
推荐阅读
相关标签
  

闽ICP备14008679号