C语言牛客网BC-49 KIKI算数(难题详解)

题目如下

---------------------------------------------------------------------------------------------------------------------------------

                                题目讲解

---------------------------------------------------------------------------------------------------------------------------------

如例题当我们算出和为125时,如果我们想输出25,我们可以使用数组的思想,将最后两位数存入到数组中,然后以我们想要的形式输出即可

实现以上代码如下

#include<stdio.h>
int main()
{
    int a,b = 0;
    int arr[1000];
    scanf("%d%d",&a,&b);
    int sum = a+b;      //计算和
    //用数组存储位数

    int sums = sum;//这里是备份sum,防止后面要用

    //将和的最后两位数以数组形式保存
    for(int i = 0;i<=1;i++){
        arr[i] = sums%10;
        sums = sums/10;
    }
    //arr[0]是个位  arr[1]是十位
  
    //将和的最后两位数输出
    for(int i = 1;i>=0;i--){
        printf("%d",arr[i]);
    }
    
}

---------------------------------------------------------------------------------------------------------------------------------

                        判断十位是否为0的实现

---------------------------------------------------------------------------------------------------------------------------------

题目要求是,当和的最后两位数中,十位数为0,则只保留个位数

那么首先我们就可以通过刚才在数组中所求的十位和个位组成最后两位数

第二步判断这个两位数的十位是不是0

如果十位为0输出个位并结束程序,十位不为0不作任何操作

实现以上代码如下

#include<stdio.h>
int main()
{
    int a,b = 0;
    int arr[1000];
    scanf("%d%d",&a,&b);
    int sum = a+b;      //计算和
    //用数组存储位数

    int sums = sum;//这里是备份sum,防止后面要用

    //将和的最后两位数以数组形式保存
    for(int i = 0;i<=1;i++){
        arr[i] = sums%10;
        sums = sums/10;
    }
    //arr[0]是个位  arr[1]是十位

    //代码新添加项在下面!!!
    int sh = arr[1] * 10 + arr[0];
    if (sh / 10 % 10 == 0) {    //判断十位是否为0
    printf("%d", arr[0]);
    goto finish;    //为0直接走向程序末
    }
    //代码新添加项在上面!!!

    //将和的最后两位数输出
    for(int i = 1;i>=0;i--){
        printf("%d",arr[i]);
    }

    finish: // //代码新添加项在这!!!
    ;
}

以上就是这道题程序实现的全部代码,已标注新添加代码位置

创作不易,点点关注,感谢支持!!!

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值