现在位置: 首页 > C 教程 > 正文

C 练习实例82

C 语言经典100例 C 语言经典100例

题目:八进制转换为十进制

程序分析:无。

实例

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include <stdio.h> #include <math.h> #include <string.h> // 函数声明 int octalToDecimal(const char *octalNumber); int main() { char octalNumber[100]; // 输入八进制数 printf("请输入一个八进制数: "); scanf("%s", octalNumber); // 转换为十进制 int decimalNumber = octalToDecimal(octalNumber); // 输出结果 printf("八进制数 %s 转换为十进制数是: %d\n", octalNumber, decimalNumber); return 0; } // 八进制转换为十进制的函数 int octalToDecimal(const char *octalNumber) { int decimalNumber = 0; int length = strlen(octalNumber); for(int i = 0; i < length; i++) { int digit = octalNumber[i] - '0'; // 将字符转换为数字 decimalNumber += digit * pow(8, length - i - 1); } return decimalNumber; }

以上实例运行输出结果为:

请输入一个八进制数: 16
八进制数 16 转换为十进制数是: 14

代码解析:

  • 头文件: 包含必要的头文件 stdio.h(用于输入输出)、math.h(用于数学计算)和 string.h(用于字符串操作)。
  • 函数声明: int octalToDecimal(const char *octalNumber); 声明了一个将八进制数转换为十进制数的函数。
  • 主函数:
    • 定义一个字符数组 octalNumber 来存储用户输入的八进制数。
    • 使用 scanf 函数获取用户输入的八进制数。
    • 调用 octalToDecimal 函数将八进制数转换为十进制数。
    • 使用 printf 函数输出转换后的十进制数。
  • 八进制转换为十进制的函数:
    • octalToDecimal 函数接收一个八进制数的字符串表示形式,并将其转换为十进制数。
    • 使用 strlen 获取八进制字符串的长度。
    • 遍历八进制字符串,每一位字符转换为对应的数字,并计算其对应的十进制值累加到 decimalNumber

C 语言经典100例 C 语言经典100例