C语言蓝桥杯十六进制转八进制_Adam
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
-
- int main()
- {
- int i, n, j, temp;
- char ch;
- scanf("%%d", &n);
- getchar();
- long a[n];
- char str[n][100000];
- for (i = 0; i < n; i++) {
- scanf("%%s", str[i]);
- for (j = 0, temp = 0; j < strlen(str[i]); j++) {
- if (48 <= str[i][j] && str[i][j] <= 57) {
- temp += (str[i][j] - 48) * pow(16, strlen(str[i]) - 1 - j);
- } else if (65 <= str[i][j] && str[i][j] <= 70) {
- temp += (str[i][j] - 55) * pow(16, strlen(str[i]) - 1 - j);
- }
- }
- a[i] = temp;
- }
- long b[n];
- for (i = 0; i < n; i++) {
- temp = a[i];
- b[i] = 0;
- for (j = 0; temp / 8 > 0; j++) {
- b[i] += (temp %% 8) * pow(10, j);
- temp = temp / 8;
- }
- b[i] += temp * pow(10, j);
- }
- for (i = 0; i < n; i++) {
- if (i + 1 == n) {
- printf("%%d", b[i]);
- } else {
- printf("%%d
", b[i]);
- }
- }
- return 0;
- }
推荐阅读