这是一道关于进制转换的题目。 输入 数字,进制,需要转换的进制。 输出 转换好的进制。超过7位显示错误。 把数字存放为字符串,然后转换。 代码: #include <iostream> #include <string.h> #include <stdio.h> #define N 100 using namespace std; char arr[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char a[N]; int b, c[N]; void swi1(char *x, int from) { int len=strlen(x); int i; b = 0; for (i=0; i<len; i++) { b *= from; if (x[i]>='0' && x[i]<='9') b += x[i]-'0'; else if (x[i]>='A' && x[i]<='F') b += x[i]-'A'+10; else printf("error!/n"); } } int swi2(int x, int to) { int i=0; while (x) { c[i++] = x%to; x /= to; } return i; } int main() { int from, to, i; while (scanf("%s%d%d", a, &from, &to)!= EOF) { swi1(a, from); int len=swi2(b, to); if (len > 7) printf(" ERROR/n"); else { for (i=0; i<7-len; i++) putchar(' '); for (i=len-1; i>=0; i--) putchar(arr[c[i]]); putchar('/n'); } } return 0; }