我尝试制作一个C程序将用户输入的十进制数转换为八进制数.我用自己的逻辑编写了C代码,没有研究其他用户如何尝试这样做.它适用于数字601和其他一些数字,但对于大多数数字,它返回八进制等效值,最后一个数字1小于它应该的数量.因为75它返回112而不是113.我体会到使用printf与%o干得不错,但它是一种挫败学习编程的目的.这是我的代码:
#include <stdio.h>
#include <math.h>
/* converting decimal to octal */
int main()
{
int n,x,y,p,s;
printf("Enter a decimal number ");
scanf("%d",&x);
s=0;p=0;
while (x!=0)
{
y=x%8;
s=s+y*pow(10,p);
x=(x-y)/8;
p=p+1;
}
printf("the octal equivalent is: %d\n",s);
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)