首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >十进制转换为八进制

十进制转换为八进制
EN

Code Review用户
提问于 2018-10-29 11:00:42
回答 1查看 418关注 0票数 1

这是一个简单的程序,将用户输入的十进制数字转换为八进制数字。

代码语言:javascript
复制
#include <iostream>
using namespace std;
main()
{
    int de,oc,y,i=1,octal;
    float decimal,deci,x;
    cout<<"Enter decimal no :: ";
    cin>>decimal;
    de=decimal;
    deci=decimal-de;
    cout<<"("<<decimal<<")10 = (";
    while(de>0)
    {
        oc=de%8;
        de=de/8;
        octal=octal+(oc*i);
        i=i*10;
    }cout<<octal<<".";
    while(deci>0)
    {
        x=deci*8;
        y=x;
        deci=x-y;
        cout<<y;
    }
    cout<<")8";
}
EN

回答 1

Code Review用户

发布于 2018-10-29 12:22:41

只是我不明白为什么?

(对于整数)有什么问题:

代码语言:javascript
复制
#include <iostream>
int main() {
    int input;
    std::cout << "Enter decimal number: ";
    std::cin >> std::dec >> input;
    std::cout << '\n' << std::oct << input << '\n';
}

关于你的代码:

  • 避免using namespace std,这是个错误的做法
  • 只是main()不是入口点的有效原型,至少要使用‘isn()
  • 在最接近的范围内定义变量。
  • 尝试始终如一地命名变量
  • de=de/8;可以简化为de /= 8;
  • 浮点转换比仅仅做你所做的要复杂一些。

编辑:测试它之后(并纠正main()和):您的代码就是不能工作,即使是整数值

代码语言:javascript
复制
Enter decimal no :: (0)10 = (32767.)8
Enter decimal no :: (8)10 = (32776.)8
Enter decimal no :: (10)10 = (32779.)8

考验自己

票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/206499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档