#为什么我的222.2;444.4;666.6过不了

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

tadehaobaba、 @ 2021-08-15 15:38:08


#include <iostream>
#include <cstdio>

using namespace std;
int main(){
    float m ;
    cin>>m;
    int a=m/100;float A=m-a*100;
    int b=A/10; float B=A-b*10;
    int c=B/1;float C=B-c*1;
    int d=C/0.1;

    cout<<d<<"."<<c<<b<<a<<endl;
    return 0;

}

by YUN_0120 @ 2021-08-15 15:45:45

@tadehaobaba、 稍后私聊您,我们慢慢分析这道题,您用的方法有问题


by 幽灵特工 @ 2021-08-15 15:47:18

@tadehaobaba、

举222.2来说,最后一步

int d=0.2/0.1=0

而不是你想要的2。试试这份代码的结果

#include<iostream>
using namespace std;
int main()
{
    cout << (int)0.2 / 0.1;
    return 0;
}

你可以把除以0.1换成乘10。

不过本题的正解应该是字符串操作吧


by 幽灵特工 @ 2021-08-15 15:49:21

@tadehaobaba、

你可以试一试输出中间变量的调试方法。

具体到本题来说你可以在输出答案之前输出a,b,c,d,A,B,C(记得加上换行符)来看看


|