我的刷题之旅1-创新互联

十余年的福海网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整福海建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“福海网站设计”,“福海网站推广”以来,每个客户项目都认真落实执行。

这题目一看,很多小伙伴可能觉这玩意肯定一遍过,然而,我当时也是这么想的,但现实是,磨了几天才写出来。这次我们选择先分析题:

首先我们来思考,我们要输入两个整数但求的却是小数,要怎么处理呢?

有两种方法:

1.我们可以在a/b的时候在a面前乘以1.0来使a变成小数(因为在c语言中,‘/’号有这样的法则,整数除整数等于整数,且是属于去尾的那种,而只要除号两端任意一端有小数,都可以为小数。)所以我们可以写这样的代码:

#includeint main()
{
    int a,b;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        printf("%.10f\n",1.0*a/b);
    }
    return 0;
}

嗯,这里有几点注意的:首先是输入,在scanf中你是怎样输入的,就要用怎样的格式:比如我输入a b中间隔了一个空格,那么在scanf的引号里也要是%d %d的格式,而如果我们如果输入的是啊a,b那么输出也要变%d,%d。这是要注意的,还有一个就是多组输入,一般我们就是用上面这个方法,可以学一下,具体的理论我也不太清楚。

这里有一点特别要注意的:养成经常打换行符的好习惯,我这么久都过不了就是因为没打换行符,也就是'\n',除非题目格式特殊要求,不然一般都是要打换行符的。

好,继续介绍第二种方法。强制转化。我们可以在a或者b的前面加一个括号里面写上double。也可以过,如:

#includeint main()
{
    int a,b;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        printf("%.10f\n",(double)a/b);
    }
    return 0;
}

这也是可以的,当然,同样的你也可以在b前面加也可以,但是不可以这样(double)(a/b)这样是错误的,因为它这样的话就会让a/b先计算出去小数尾的整数;再加小数点。同样这样也是错的。(这里提一嘴,%f这里变为%.10f的意思是保留十位小数).

拓展一个小知识:这里为什么不用float类型呢?那是因为错了,到底为什么错了呢?重点来了:因为float为单精度浮点类型y十进制的有效位数为7位,double双精度类型的十进制的有效位数为16位,这就说明白了刚刚为什么float不行。

最后想在激励一下自己:

林清玄:"人也要像珍珠贝一样,养成重塑伤口的本事。转化成生命的创伤,使它变成美丽的珍珠。”愿每一个受过伤的孩子都能坚强的重新站起来,去努力追寻心中的光·。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

文章名称:我的刷题之旅1-创新互联
URL地址:https://www.cdcxhl.com/article20/dsigjo.html

成都网站建设公司_创新互联,为您提供网站收录动态网站手机网站建设服务器托管软件开发外贸网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司