newlifelxh 发表于 2017-3-12 15:37:28

题目:统计个位数字---在PTA平台上做题有一个测试点不通过

本帖最后由 newlifelxh 于 2017-3-12 15:40 编辑

题目:统计个位数字

问题:在PTA平台上做题有一个测试点不通过(如下图):

我的代码:
#include<stdio.h>

int Count_Digit(const int N, const int D);

int main()
{
      int N, D;

      scanf("%d %d", &N,&D);
      printf("%d\n", Count_Digit(N,D));
      return 0;
}

int Count_Digit(const int N, const int D)
{
      int count, num, s;
      count = 0;
      if (N<0)
                s = -N;
      else
                s = N;
      while (s != 0)
      {
                num = s % 10;
                if (num == D)
                        count = count + 1;
                s = s / 10;
      }
      return count;
}

craneX 发表于 2017-3-12 15:55:15

楼主,当N为0时,需要统计的个数为0出现的个数的时候。

newlifelxh 发表于 2017-3-12 16:17:01

craneX 发表于 2017-3-12 15:55
楼主,当N为0时,需要统计的个数为0出现的个数的时候。

你说的对!
忘了0 0这个测试用例了
马上改正
一会把正确的代码贴出来

newlifelxh 发表于 2017-3-12 17:00:06

craneX 发表于 2017-3-12 15:55
楼主,当N为0时,需要统计的个数为0出现的个数的时候。

这是改正之后的代码:
#include <stdio.h>

int Count_Digit ( const int N, const int D );

int main()
{
    int N, D;
                               
    scanf("%d %d", &N, &D);
    printf("%d\n", Count_Digit(N, D));
    return 0;
}

int Count_Digit(const int N, const int D)
{
    int count, num, s;
    count = 0;
    if (N<0)
      s = -N;
    else
      s = N;
        if(s == 0){
                if( s==D )
                        count = 1;
                else
                        count = 0;
        }

    while (s != 0)
    {
      num = s % 10;
      if (num == D)
            count = count + 1;
      s = s / 10;
    }
    return count;
}
页: [1]
查看完整版本: 题目:统计个位数字---在PTA平台上做题有一个测试点不通过