3. 从键盘上输入一个八进制数,利用指针将其转换为十进制数并输出 C语言 很急
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3. 从键盘上输入一个八进制数,利用指针将其转换为十进制数并输出 C语言 很急相关的知识,希望对你有一定的参考价值。
参考技术A 你要是实在想自己转换,开一个以为数组,每个8进制数都会转换成3个二进制的数,8转2你可以使用辗转相除得到,不用给你写代码吧,给你举个例子如果输入是7711那么对第一个7辗转,先除2取余数1,把结果3再除二取余数1,结果得到1再除以二取余数1,逆序存放 参考技术B 给你写了个,能正确输出结果#include "stdio.h"
#include "string.h"
int EtoT(char s[15])
int sum=0;
int x = 1;
for(int i = strlen(s)-1;i>=0;i--)
sum+=(s[i]-48)*x;
x*=8;
return sum;
int main()
char str[15];
int sum;
scanf("%[^\n]",&str);
printf("%d",sum=EtoT(str));
return 0;
追问
不行啊
追答怎么可能呢?26(八进制)——>22(十进制)
112——>74可以啊
#include <math.h>
void main()
int a;
int p = 0;
int i = 0;
scanf("%d",&a);
while(a)
p += a%10 * pow(8,i);
a /=10;
i++;
int *b = &p;
printf("%d",*b);
参考技术D 不用你自己实现。c有实现的函数。
canf("%o",&a);
printf("%d",a);追问
可以给个完整的代码不啊 下午要交的啊
追答好吧,
#include
int main()
int a ;
printf("请输入一个十进制数:");
scanf("%d",&a);
printf("\n%d转换为八进制是:%o",a,a);
int main(void)
int a;
scanf("%o",&a);
printf("%d",a);
system("pause");
return 0;
利用倒除法将一个十进制数的正整数转换为二进制
#include <iostream> #include <Windows.h> using namespace std; int main(void) int n = 0; int ret[32]; int i = 0; cout << "请输入一个正整数:"; cin >> n; while (n != 0) ret[i] = n % 2; n = n / 2; i++; for (i--; i >= 0; i--) cout << ret[i]; cout << endl; system("pause"); return 0;
以上是关于3. 从键盘上输入一个八进制数,利用指针将其转换为十进制数并输出 C语言 很急的主要内容,如果未能解决你的问题,请参考以下文章
c语言 从键盘上读入一个整型数,将其转化成字符串并输出。例如:输入123,则转换为字符串“123