我尝试制作一个 C 程序来将用户输入的十进制数转换为八进制。我用自己的逻辑编写了 C 代码,没有研究其他用户如何尝试这样做。它适用于数字601
和其他一些数字,但对于大多数数字,它返回等效的八进制数,最后一位数字1
小于应有的数字。因为75
它返回112
而不是113
. 我意识到使用printf
with%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;
}