6-9 统计个位数字(15 分)

本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。

函数接口定义:

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

其中ND都是用户传入的参数。N的值不超过int的范围;D是[0, 9]区间内的个位数。函数须返回ND出现的次数。

裁判测试程序样例:

#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;
}

/* 你的代码将被嵌在这里 */

输入样例:

-21252 2

输出样例:

3

完整代码如下:

#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 i,j;
    int num=0;
    if(N==0&&D==0)
    {
        return 0;
    }
    else if(N==0&&D!=0)
      {
          return 0;
      }
    else if(N>0)
    {
        for(i=N;i!=0;i/=10)
        {
            j=i%10;
            if(j==D)
            num++;
        }
        return num;
    }
    else if(N<0)
    {
        for(i=N*(-1);i!=0;i/=10)
        {
             j=i%10;
            if(j==D)
            num++;
        }
        return num++;
    }
}*/
int Count_Digit(const int N,const int D)//结果代码;
{
    int i,j,b=0;
    i=N;
    if(i<0)
     i=-i;
    do{
            j=i%10;
            if(j==D)
              b++;
            i=i/10;
    }while(i!=0);
    return b;
}

猜你喜欢

转载自blog.csdn.net/qq_40604313/article/details/81266300