首页 > 解决方案 > 这里有什么问题?单位换算

问题描述

它继续进入一个持续循环,不知道为什么!这不是作业,只是练习,我正在努力学习,我想做一个单位转换器,但我不确定这是否是野兽的方式,如果你有更好的想法,请随意。

/// Write a program to promt for units
//calcultes and converts units

#include <iostream>
#include <string>
#include <cmath>

using namespace std;int main () {
    string re_Run, units;
    do{
    int f1;


    cout<<"enter force: >";
    cin>>f1;

    cout<<"enter units: >";
    cin>>units;

    string units, N, kN, lb, kip;
    double conv_lb, conv_N, conv_kN;

    do{
        if (f1<1000 && units == "N"){
            cout<<f1<<" N";
        }
        else if (f1>1000 && units == "kN"){
            cout<<f1<<" kN";
        }
        else if (f1>=1000 && units == "N") {//|| x== kN)
            conv_N=f1/1000;
            cout<<conv_N<<" kN"; //convert from N to kN
        }
        else if (f1<1000 && units== "lb" ){
            cout<<f1<<" lb";
        }
        else if (f1>1000 && units== "lb" ){//|| x==kip
            conv_lb=f1/1000;
            cout<<conv_lb<<" kip";
        }
        else if (f1>1000 && units== "kip" ){
            cout<<f1<<" kip";
        }
        else {
            cout<< "please enter (lb/kip/N/kN)\n    >";
            cin>>units;
        }
    }while (units == "N" || units == "kN" || units == "lb" || units =="kip");//(units != "N" && units != "kN" && units != "lb" && units !="kip");

    cout<<"re-run?";
    cin>> re_Run;
    }
    while (re_Run == "yes");
return 0;
}

标签: c++unit-conversion

解决方案


您重新定义units变量,使其为空:

cin>>units;  // here you read it

string units, N, kN, lb, kip;  // here redefinition

units可能不需要这一秒

而内部的while循环,因为这就是条件的设置方式:while (units == "N" || units == "kN" || units == "lb" || units =="kip");如果unitsN那么它循环。


推荐阅读