ユーザーが入力した10進数を8進数に変換するCプログラムを作成してみました。私は、他のユーザーがどのようにそれを行おうとしているのかを調査することなく、独自のロジックでCコードを作成しました。数値やその他のいくつかの数値では正常に機能し601
ますが、ほとんどの数値では、最後の桁が1
本来よりも小さい8進数に相当するものが返されます。の代わりに75
戻ります。withを使用すると作業が完了しますが、プログラミングを学ぶという目的を損なうようなものです。これが私のコードです: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;
}