您的位置:首页 > 其它

UVA10473 Simple Base Conversion【进制转换】

2018-01-20 21:00 639 查看
In this problem you are asked to write a simplebase conversion program. You will be givena hexadecimal or decimal integer number as input.You will have to output the correspondingdecimal or hexadecimal number. Hexadecimalnumbers always starts with a ‘0x’
and all othernumbers are to be considered as decimal numbers.There will be no invalid numbers in theinput.



Input

The input file contains several lines of input. Each line contains a single non-negative number, whichmay be a decimal or hexadecimal number as explained in the problem statement. The decimal value ofthis number will be less than 231. A line containing a
negative decimal number terminates input. Thisnumber should not be processed. Input numbers will contain no space within them.

Output

For each line of input (Except the last one) produce one line of output. This line should contain thedecimal or hexadecimal representation of the corresponding hexadecimal or decimal number. Like theinput, the hexadecimal numbers in the output should be
preceded by a ‘0x’.

Sample Input

4

7

44

0x80685

-1

Sample Output

0x4

0x7

0x2C

525957

问题链接UVA10473 Simple Base Conversion

问题简述:(略)

问题分析
  这是一个进制转换问题,要充分利用格式化输入输出函数和字符串与整数之间转换的函数。

  充分利用这些函数,程序逻辑就简单了。

程序说明:(略)

题记:(略)

参考链接:(略)

AC的C语言程序如下:
/* UVA10473 Simple Base Conversion */

#include <stdio.h>
#include <stdlib.h>

#define N 16
char s
;

int main(void)
{

while (gets(s) != NULL && s[0] != '-')
if(s[1] == 'x')
printf("%ld\n", strtol(s, NULL, 16));
else
printf("0x%X\n", atoi(s));

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: