求助 用for循环怎么通过这道题

P5705 【深基2.例7】数字反转

Poppet @ 2022-10-09 20:04:26

本人列举的数据为整数部分相同 ,小数部分从1至9的数据

问题出在第三个for循环

如下代码只能通过小数部分是奇数(除0)的数据

#include<stdio.h>
int main()
{   
    int b,c,d,e=0;
    double a;
    scanf("%lf",&a);
    for(b=0;a>=100;a=a-100.0){
    b++;
    }
    for(c=0;a>=10;a=a-10.0){
        c++;
    }
    for(d=0;a>=1;a=a-1.0){
        d++;
    }
    **for(e=0;a>=0.1;a=a-0.1){
        e++;
    }**
    printf("%d.%d%d%d",e,d,c,b);
    return 0;
}

如下代码可通过的数据和上述代码完全相反(除0)

#include<stdio.h>
int main()
{   
    int b,c,d,e=0;
    double a;
    scanf("%lf",&a);
    for(b=0;a>=100;a=a-100.0){
    b++;
    }
    for(c=0;a>=10;a=a-10.0){
        c++;
    }
    for(d=0;a>=1;a=a-1.0){
        d++;
    }
    **for(e=0;a>0.0;a=a-0.1){
        e++;
    }**
    printf("%d.%d%d%d",e,d,c,b);
    return 0;
} 

小数部分为零的数据均可通过

调试过程中出现计算小数部分为0.1,实则计算机运算为0.0999999999999的现象 求助这种问题如何解决

求助 for循环无法通过这道题吗


by Poppet @ 2022-10-09 20:48:40

@chenhaofeng 谢谢


by Poppet @ 2022-10-09 20:49:27

@ud2_ 谢谢


上一页 |