输入一个八进制数字字符串,将其转换成十进制数后输出。C语言

如题所述

以下是 C 语言代码示例:

```c
#include <stdio.h>
#include <math.h>

int main() {
char octal[20];
int decimal = 0, i, len;

printf("请输入一个八进制数字:");
scanf("%s", octal);

len = strlen(octal);
for (i = 0; i < len; i++) {
decimal += (octal[i] - '0') * pow(8, len-i-1);
}

printf("转换为十进制数为:%d\n", decimal);

return 0;
}
```

该代码中,首先使用 `scanf` 函数读入一个字符串。由于输入的是一个八进制数字字符串,因此可以直接使用字符数组存储。

然后,使用循环遍历该字符串的每一位数字,并将其转换为十进制数。在计算过程中,将每一位数字乘以 8 的相应次幂,然后依次加起来即可。

最后,使用 `printf` 函数输出转换后的十进制数。运行程序后,输入一个八进制数字字符串,例如 123,然后输出的结果为:

```
转换为十进制数为:83
```

因此,输入的八进制数字 123 转换为十进制数为 83。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-06
int main()
{
char str[1024] = {0};
int i;
int result = 0;

gets(str);

for(i = 0; i < strlen(str); i ++)
{
if(str[i] > '7' || str[i] < '0')
{
printf("invalid char found\n");
return -1;
}
result *= 8;
result += str[i] - '0';
}
printf("result is %d\n", result);
}本回答被提问者采纳
第2个回答  2023-03-10
输入一个八进制数字字符串,将其转换成十进制数后输出的C语言代码示例如下:
#include<stdio.h>void main(){ int i=0,n=0; char a[20];//一般20就够用了
printf("请输入一个八进制数:\n");
gets(a); while(a[i]!='\0'){
n=n*8+a[i]-'0';//核心算法
i++;
} printf("转换为十进制数为:%d\n",n);
}
相似回答