帮我用C语言编程解决下面的问题。题目描述:将一个八进制数转换为十进制数。输入描述:多组输入,以0作为输入的结束,八进制数字不超过6位。 输出描述:多组输出,每行输出相应行八进制数的十进制数. 。
时间: 2024-02-21 22:58:18 浏览: 56
好的,下面是C语言的程序代码,可以解决您的问题:
```c
#include <stdio.h>
int main() {
int octal, decimal;
while (1) {
scanf("%o", &octal);
if (octal == 0) break; // 输入0时结束
decimal = 0;
int base = 1;
while (octal > 0) {
decimal += (octal % 10) * base;
octal /= 10;
base *= 8;
}
printf("%d\n", decimal);
}
return 0;
}
```
程序的思路是:每次读入一个八进制数,然后从低位到高位逐位转换为十进制数,最后输出转换结果。程序通过一个死循环实现多组输入,当输入0时结束。其中,`%o`是C语言中表示八进制数输入输出格式符号。
阅读全文