题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <stdio.h>
#include <math.h>
#include<ctype.h>
void reverse(char* s) {
int i = 1, len = 0, j = 0;
char* p=s;
char c;
while (*p != 0) {
len++;
p++;
}
for (i = 0; i <= len / 2 - 1;i++) {
c = *(s + i);
*(s + i) = *(s + len - i - 1);
*(s+len - i - 1) = c;
}
}
int main() {
char a[100], b;
int i = 1, j=0, sum = 0;
char* gets(char* a);
gets(a);
reverse(a);
while ((a[j] != 'x')) {
switch (a[j]) {
case 'A':
sum = sum + 10 * i;
break;
case 'B':
sum = sum + 11 * i;
break;
case 'C':
sum = sum + 12 * i;
break;
case 'D':
sum = sum + 13 * i;
break;
case 'E':
sum = sum + 14 * i;
break;
case 'F':
sum = sum + 15 * i;
break;
case '0':
sum = sum + 0 * i;
break;
case '1':
sum = sum + 1 * i;
break;
case '2':
sum = sum + 2 * i;
break;
case '3':
sum = sum + 3 * i;
break;
case '4':
sum = sum + 4 * i;
break;
case '5':
sum = sum + 5 * i;
break;
case '6':
sum = sum + 6 * i;
break;
case '7':
sum = sum + 7 * i;
break;
case '8':
sum = sum + 8 * i;
break;
case '9':
sum = sum + 9 * i;
break;
}
i = i * 16;
j++;
}
printf("%d", sum);
return 0;
}
}
查看17道真题和解析

