小编Sri*_*amp的帖子

十进制到八进制转换器,最后一个数字问题

我尝试制作一个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)

c decimal octal

5
推荐指数
1
解决办法
1981
查看次数

标签 统计

c ×1

decimal ×1

octal ×1