c语言题目求解输入8个10进制整数,依次输出每一个数的八进制和十六进制表示
时间: 2024-05-08 15:16:34 浏览: 217
```c
#include <stdio.h>
int main() {
int num[8];
for(int i=0; i<8; i++) {
scanf("%d", &num[i]);
}
printf("八进制\t十六进制\n");
for(int i=0; i<8; i++) {
printf("%o\t%X\n", num[i], num[i]);
}
return 0;
}
```
解释:首先定义一个数组用来存储输入的八个十进制整数,然后用for循环逐个输入。接着输出表头,然后再用for循环逐个输出每个数的八进制和十六进制表示,其中"%o"表示输出八进制,"%X"表示输出大写字母的十六进制。最后返回0,表示程序顺利结束。
相关问题
C语言如果一个正整数转化成二进制与转换成八进制后所有数位的数字之和相等,则称为数位和相等的数。 前几个数位和相等的正整数为 1, 8, 9, 64, …… 请问第 23 个数位和相等的正整数是多少?
以下是C语言求解数位和相等的数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int sum(int num, int base) {
int s = 0;
while (num > 0) {
s += num % base;
num /= base;
}
return s;
}
int main() {
int count = 0, num = 1;
while (count < 23) {
if (sum(num, 2) == sum(num, 8)) {
count++;
if (count == 23) {
printf("第23个数位和相等的正整数是:%d\n", num);
}
}
num++;
}
return 0;
}
```
输出结果为:第23个数位和相等的正整数是:524288。
阅读全文