| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1253 人关注过本帖
标题:求教大神这题怎么改?真的不会改了。。。
只看楼主 加入收藏
猴开森
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2016-11-27
结帖率:60%
收藏
 问题点数:0 回复次数:2 
求教大神这题怎么改?真的不会改了。。。
你的任务呢,是将一个有理数转换成三进制小数。“什么是三进制小数呢?”你一定会问,这很明白,就是以三为基(二进制数以2为基,而十进制数则以10为基)的小数。
输入
有理数的值都是在0与1之间的,每个有理数都由一个分子和一个分母表示,分子与分母之间隔着一个斜杠。有理数的个数不会超过1000个。
输出
输出格式见样本输出,它是以小数点开头的具有10位精度的3进制数。 

样例输入
1/3
1/4
1/6
7/8
样例输出
.1000000000
.0202020202
.0111111111
.2121212122


#include<stdio.h>
int main()
{
    double m=0;
    int n=0,a[100]={0},i,p=0,x,y,b;
    scanf("%d/%d",&x,&y);

    m=(double)x/(double)y;


    for(i=0;i<10;i++)
    {
        a[i]=(int)(m*10)%10;
        m*=10;

    }



    for(i=9;i>=0;i--)
    {

        if(a[i]>2)
        {

            p=a[i];
            n=0;

            while(p>2)
            {
                p=p-3;
                n++;
            }

            a[i-1]+=n;


            a[i]=a[i]-3*n;
        }
    }
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
搜索更多相关主题的帖子: 有理数 样本 小数点 十进制 二进制 
2017-02-08 15:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
竟然还有进位,那请问
177146/177147 (也就是三进制的 0.22222222222,一共11个2)
你该输出什么?

2017-02-08 15:53
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
13 —> 20 这样是不行的
乘3取整,顺序排列,具体还是网上看看详细解析,以下提供一个参考
程序代码:
#include<stdio.h>
int main(void)
{
    double a, b;
    int i=0;
    
    while(scanf("%lf/%lf", &a, &b) && (a!=0 || b!=0))
    {
        char s[20]={0};           //这个用来保存结果 
        int t=10;                 //控制小数点后输出10个数 
        double num = a/b;         //将分数转化为小数  
        while(t--)
        {
            num = num*3;            //乘3取整数部分(0也算) 
            s[i] = int(num)+48;     //保存 
            i++;                    
            num = num -int(num);    //去掉整数部分 
        }
        putchar('.');
        puts(s);
    }
    
    return 0;
}

早知做人那么辛苦!  当初不应该下凡
2017-02-08 16:05
快速回复:求教大神这题怎么改?真的不会改了。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059713 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved