酷代码 AI
菜单

把一个八进制数转变为十进制数。 输入 一行,仅含一个八进制表示的正整数 n (1≤n≤10^9)。 输出 一个整数,表示对应的十进制数。 样例输入 复制 11 样例输出 复制 9

```c #include <stdio.h> #include <string.h> #include <math.h> int main() { char octal[35]; // 八进制数最大10^9,对应八进制最多30位,预留空间 scanf("%s", octal); int length = strlen(octal); long long decimal = 0; // 使用long long防止大数溢出 // 从最高位开始转换 for (int i = 0; i < length; i++) { int digit = octal[i] - '0'; // 将字符转换为数字 decimal = decimal * 8 + digit; // 八进制转十进制算法 } printf("%lld\n", decimal); return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 输入可能包含前导零,但算法能正确处理 八进制数可能很大,需要选择足够大的数据类型存储十进制结果 字符到数字的转换要准确,确保减去'0'而不是其他值 [2026-01-20 13:52:50 | AI写代码神器 | 219点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多