杭电ACM2017

  • A+
所属分类:ACM

杭电ACM2017

#include <stdio.h>
#include <string.h>
int main(void)
{
 int n;
 char a[1000];
 int i,count;
 int l;
 while (scanf("%d ",&n)!=EOF)
 { 
 while (n--)
 {
  gets(a);
  count=0;
  l=strlen(a);
  for(i=0;i<l;i++)
  {
   if (a[i]>='0'&&a[i]<='9')
   {
    count++;
   }
  }
  printf("%d\n",count);
 }
 }
 return 0;
}

除了以上写法还有下面的方法,但未经测试,不知AC否
计数函数直接改成

char a[10000];
gets(a);
int l=strlen(a);
int str[123]={0};
int count;
for(i=0;i<l;i++)
{
  str[a[i]]++;
}
count=0;
for(i='0';i<='9';i++)
{
  count +=str[i];
}

第二种写法事实上是利用了ASCII码,不进行判断,速度会快些,条件是在数很多的情况下

百分购

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: