菜鸟提问:为什么这段代码如此奇怪 原题PAT 习题5-5 使用函数统计指定数字的个数 (15分)

PAT 专栏收录该内容
12 篇文章 0 订阅
原题:

本题要求实现一个统计整数中指定数字的个数的简单函数。

函数接口定义:

int CountDigit( int number, int digit );

其中number是不超过长整型的整数,digit为[0, 9]区间内的整数。函数CountDigit应返回numberdigit出现的次数。

裁判测试程序样例:

#include <stdio.h>

int CountDigit( int number, int digit );

int main()
{
    int number, digit;

    scanf("%d %d", &number, &digit);
    printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));

    return 0;
}

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

输入样例:

-21252 2

结尾无空行

输出样例:

Number of digit 2 in -21252: 3

结尾无空行

菜鸟写的代码:

int CountDigit( int number, int digit )

{
    int a,m=0;
    if(number==digit)
        m++;
    number = (-1)*number;//这步试着运行一下答案竟然正确了
    while(number > 0){
        a=number%10;
        if(a==digit||a==-digit)
            m++;
        number=number/10;
    }
    return m;
}

把上面注释的那一步写上去后,竟然通过了PAT的测试运行

但是总感觉有点儿不对劲,大佬们怎么看呢?

  • 1
    点赞
  • 3
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值