2104: 程序改错 - 字符转换为数字

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:259 解决:181

题目描述

题目:九进制转换,将输入的九进制数字转换成16进制输出。
输入:若干用空格隔开的数字字符串,字符串只由0-8数字构成,长度不大于10
输出:对每个数字字符串输出一个十六进制数,每个一行,需输出前缀0X,十六进制中的ABCDEFG用大写格式。
代码如下,请修正后提交:
#include <stdio.h>
int to_int(const char* a) {
    int p = 0;
    int i;
    for (i = 0; a[i]!=0; i++) {
        p = p * 9 + a[i];
    }
    return p;
}
int main() {
    char s[11];
    while (scanf("%s", s) != EOF) {
        printf("0X%X\n", to_int(s));
    }
    return 0;

输入

若干用空格隔开的数字字符串,字符串只由0-8数字构成,长度不大于10

输出

对每个数字字符串输出一个十六进制数,每个一行,需输出前缀0X,十六进制中的ABCDEFG用大写格式。

样例输入 复制

123

样例输出 复制

0X66

来源/分类