菜鸟求帮,进制转换
输入一个十进制数N,将它转换成R进制数输出。
输入
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
输出
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
样例输入
7 2
23 12
-4 3
样例输出
111
1B
-11
负数的时候我就不会处理啦。。R>10的时候感觉有点烦。。。
[解决办法]
- C/C++ code
#include <stdio.h> #include <stdlib.h> void main() { char str[8]; int i,n; scanf("%d %d", &n, &i); itoa(n,str,i); //用函数转换itoa(值,数组名,进制) printf( "%s\n ",str); }
[解决办法]
如果你要大写字母输出的话:首先两个头文件
- C/C++ code
#include <string.h> #include<ctype.h>
[解决办法]
http://topic.csdn.net/u/20110718/08/6fd09f7b-22f4-4616-80c4-1cbf89f5a772.html
看看这个37楼的我以前写的
[解决办法]
看着没错啊,为什么是错的?没达到要求?
[解决办法]
[Quote=引用:]
[code=C/C++][/code]#include<stdio.h>
#include<string.h>
int main(){
void f(int n,char str[],int r);
char str[80];
int n,r;
while(scanf("%d %d",&n,&r)!=EOF)
{
if(n>0)
{f(n,str,r);puts……
[/Quote]
考虑 0 的进制 你的代码输出 -
出错也正常...