程序员

2021-04-23

作者:admin 2021-09-27 我要评论

7-2 单位变换二 由于喵星人和汪星人属于不同的物种他们的度量衡也不同比如喵星人的某单位M乘上11然后再减去23173恰好等于汪星人的某单位W。也就是说0M等于-23173...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

7-2 单位变换二

由于喵星人和汪星人属于不同的物种,他们的度量衡也不同,比如喵星人的某单位M乘上11,然后再减去23173恰好等于汪星人的某单位W。也就是说0M等于-23173W,1M等于-23162W,现在请你写一段程序来帮助喵星人和汪星人做单位变换。

输入格式:

只有一行,为一个长度大于1且不超过12的字符串。其中最后一个字符只可能是W或M,代表相应的单位。其它字符代表一个整数,其中A代表负号(只可能是第一个字符),B到K代表9到0。

输出格式:

也只有一行,为变换后的结果(数字用阿拉伯数字,单位仍用M和W)。如果输入的单位为M,则转换为对应的W值输出;如果输入的单位为W,则转换为对应的M值输出;测试数据保证1、输入合法;2、除法运算不会有余数;3、运算过程中所有整数都可以用int存储。

输入样例:

JKM

输出样例:

-23063W

?做练习时最开始因为没注意if的右括号位置导致一直是部分正确(正数样例),看了很久没发现,就上csdn上面查了一下,发现前辈们都写的比较长(我只看了两例),所以想把自己的代码分享出来提供一种新的思路,毕竟是作为新课随堂练也只会用到字符串前的内容(?′ω`? )

如果有错误以及不足之处请指出。(?′ω`? )我也是刚学的小白而已,能给新学习的同学帮上忙就好了

#include<stdio.h>
#include<string.h>
int main()
{
    char ch[20];
    int sum=0;
    int f=1;
    scanf("%s",ch);
    if(ch[0]=='A')//判断正负,并将剩下的数字统一为正数,符号交给f
    {
        for(int i=0; i<strlen(ch); i++)
        {
            ch[i]=ch[i+1];
        }
        f=-1;
    }
        for(int i=0; i<strlen(ch)-1; i++)//-1:不计算单位字符,转换成数字
        {
            sum=sum*10+('K'-ch[i]);
        }
        sum*=f;
        if(ch[strlen(ch)-1]=='M')
        {
            sum=sum*11-23173;
            printf("%dW",sum);
        }
        if(ch[strlen(ch)-1]=='W')
        {
            sum=(sum+23173)/11;
            printf("%dM",sum);
        }
    return 0;
}

?

;原文链接:https://blog.csdn.net/DDL_8_00/article/details/116035807

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 2021-04-23

    2021-04-23

  • Windows 10全新内存管理工具曝光:不仅

    Windows 10全新内存管理工具曝光:不仅

  • 借助HTTP通过SSH绕过Linux防火墙

    借助HTTP通过SSH绕过Linux防火墙

  • 为什么 CPU 访问硬盘很慢

    为什么 CPU 访问硬盘很慢

腾讯云代理商
海外云服务器