题解 | #进制转换#

进制转换

https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

#include <stdio.h>
#include <string.h>
#include <math.h>

int main() {
    int a = 0, b = 0, c = 0;
    char buff[128] = "";
    char A = '9';

    scanf("%s", &buff);
    a = strlen(buff);

    for(int i = 2; i < a; i++)
    {
       if (buff[i] >= '0' && buff[i] <= '9' )
       {         
         c= buff[i] - '0';   
       }
       else if(buff[i] >= 'a' && buff[i] <= 'f')
       {
         c = (int)buff[i] - 'a' + 10;
       }
       else if(buff[i] >= 'A' && buff[i] <= 'F')
       {
         c = (int)buff[i] - 'A' + 10;
       }
       else
       {
         printf("输入非法\n");
       }
       b = b + c * pow(16, (a-i-1)) ;    
    }
    printf("%d\n", b);     
    return 0;
}

#你们的毕业论文什么进度了#
全部评论

相关推荐

点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务