WHCSRL 技术网

C语言蓝桥杯十六进制转八进制_Adam

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. int main()
  5. {
  6. int i, n, j, temp;
  7. char ch;
  8. scanf("%%d", &n);
  9. getchar();
  10. long a[n];
  11. char str[n][100000];
  12. for (i = 0; i < n; i++) {
  13. scanf("%%s", str[i]);
  14. for (j = 0, temp = 0; j < strlen(str[i]); j++) {
  15. if (48 <= str[i][j] && str[i][j] <= 57) {
  16. temp += (str[i][j] - 48) * pow(16, strlen(str[i]) - 1 - j);
  17. } else if (65 <= str[i][j] && str[i][j] <= 70) {
  18. temp += (str[i][j] - 55) * pow(16, strlen(str[i]) - 1 - j);
  19. }
  20. }
  21. a[i] = temp;
  22. }
  23. long b[n];
  24. for (i = 0; i < n; i++) {
  25. temp = a[i];
  26. b[i] = 0;
  27. for (j = 0; temp / 8 > 0; j++) {
  28. b[i] += (temp %% 8) * pow(10, j);
  29. temp = temp / 8;
  30. }
  31. b[i] += temp * pow(10, j);
  32. }
  33. for (i = 0; i < n; i++) {
  34. if (i + 1 == n) {
  35. printf("%%d", b[i]);
  36. } else {
  37. printf("%%d ", b[i]);
  38. }
  39. }
  40. return 0;
  41. }

推荐阅读