C++ C++;边做边重复 #包括 #包括 #包括 #包括 使用名称空间std; int-getTreeNo(int); int getSpeciesCode(int); float getDbh(float); int gettott(int); int gettott(int); 双calcTotVol(双[],双[],浮点,整数); int main(){ int i=0; int-treeNo=0; int speciesCode=0; 字符串speciesDesc[6]={}; 浮动胸径=0.00; int totalHt=0; 双倍总体积=0.00; int物种[6]={}; 双b0[6]={}; 双b1[6]={}; int noTrees=0; treeNo=getTreeNo(treeNo); /*获取用于计算的树数*/ speciesCode=getSpeciesCode(speciesCode); /*从用户处获取物种代码*/ 胸径=getDbh(胸径); /*从用户获取DBH*/ totalHt=gettoht(totalHt); /*从用户获取树高度*/ 总体积=总体积(b0、b1、胸径、总高度); /*计算值*/ /*所有常量和变量 int treeNo; 国际规范; 字符串speciesDesc[6]; 漂浮胸径; 整体; 双总体积; int种[6]; 双b0[6]; 双b1[6]; 国际诺里斯; 双avgTotVol; */ 如果(规格代码=11){ speciesDesc[0]=“火炬松”; }否则如果(规格代码=12){ speciesDesc[1]=“白松”; }否则如果(规格代码=13){ speciesDesc[2]=“红松”; }否则如果(规格代码=21){ speciesDesc[3]=“白橡木”; }否则如果(规格代码=22){ speciesDesc[4]=“红橡木”; }否则如果(规格代码=23){ speciesDesc[5]=“其他橡木”; } 物种[0]=11; 种类[1]=12; 种类[2]=13; 种类[3]=21; 种类[4]=22; 种类[5]=23; 如果(规格代码=11){ b0[0]=1.2446; }否则如果(规格代码=12){ b0[1]=0.000; }否则如果(规格代码=13){ b0[2]=2.0822; }否则如果(规格代码=21){ b0[3]=.7316; }否则如果(规格代码=22){ b0[4]=1.6378; }否则如果(规格代码=23){ b0[5]=0.7554; } 如果(规格代码=11){ b1[0]=0.002165; }否则如果(规格代码=12){ b1[1]=0.002364; }否则如果(规格代码=13){ b1[2]=0.002046; }否则如果(规格代码=21){ b1[3]=0.001951; }否则如果(规格代码=22){ b1[4]=0.002032; }否则如果(规格代码=23){ b1[5]=0.002174; } 总体积=b0[6]+b1[6]*功率(胸径,2)*总高度; 对于(i=0;i

C++ C++;边做边重复 #包括 #包括 #包括 #包括 使用名称空间std; int-getTreeNo(int); int getSpeciesCode(int); float getDbh(float); int gettott(int); int gettott(int); 双calcTotVol(双[],双[],浮点,整数); int main(){ int i=0; int-treeNo=0; int speciesCode=0; 字符串speciesDesc[6]={}; 浮动胸径=0.00; int totalHt=0; 双倍总体积=0.00; int物种[6]={}; 双b0[6]={}; 双b1[6]={}; int noTrees=0; treeNo=getTreeNo(treeNo); /*获取用于计算的树数*/ speciesCode=getSpeciesCode(speciesCode); /*从用户处获取物种代码*/ 胸径=getDbh(胸径); /*从用户获取DBH*/ totalHt=gettoht(totalHt); /*从用户获取树高度*/ 总体积=总体积(b0、b1、胸径、总高度); /*计算值*/ /*所有常量和变量 int treeNo; 国际规范; 字符串speciesDesc[6]; 漂浮胸径; 整体; 双总体积; int种[6]; 双b0[6]; 双b1[6]; 国际诺里斯; 双avgTotVol; */ 如果(规格代码=11){ speciesDesc[0]=“火炬松”; }否则如果(规格代码=12){ speciesDesc[1]=“白松”; }否则如果(规格代码=13){ speciesDesc[2]=“红松”; }否则如果(规格代码=21){ speciesDesc[3]=“白橡木”; }否则如果(规格代码=22){ speciesDesc[4]=“红橡木”; }否则如果(规格代码=23){ speciesDesc[5]=“其他橡木”; } 物种[0]=11; 种类[1]=12; 种类[2]=13; 种类[3]=21; 种类[4]=22; 种类[5]=23; 如果(规格代码=11){ b0[0]=1.2446; }否则如果(规格代码=12){ b0[1]=0.000; }否则如果(规格代码=13){ b0[2]=2.0822; }否则如果(规格代码=21){ b0[3]=.7316; }否则如果(规格代码=22){ b0[4]=1.6378; }否则如果(规格代码=23){ b0[5]=0.7554; } 如果(规格代码=11){ b1[0]=0.002165; }否则如果(规格代码=12){ b1[1]=0.002364; }否则如果(规格代码=13){ b1[2]=0.002046; }否则如果(规格代码=21){ b1[3]=0.001951; }否则如果(规格代码=22){ b1[4]=0.002032; }否则如果(规格代码=23){ b1[5]=0.002174; } 总体积=b0[6]+b1[6]*功率(胸径,2)*总高度; 对于(i=0;i,c++,while-loop,C++,While Loop,此while语句中的条件永远不会为false,循环也永远不会退出。为了使其为false,speciesCode一次必须有多个值 #include <iostream> #include <string> #include <cctype> #include <sstream> using namespace std; int getTreeNo(int); int getSpeciesCode(int); float getDbh(float)

此while语句中的条件永远不会为false,循环也永远不会退出。为了使其为false,
speciesCode
一次必须有多个值

#include <iostream>
#include <string>
#include <cctype>
#include <sstream>

using namespace std;

int getTreeNo(int);
int getSpeciesCode(int);
float getDbh(float);
int getTotHt(int);
int getTotHt(int);
double calcTotVol(double[], double[], float, int);

int main() {
    int i = 0;
    int treeNo = 0;
    int speciesCode = 0;
    string speciesDesc[6] = {};
    float dbh = 0.00;
    int totalHt = 0;
    double totalVol = 0.00;
    int Species[6] = {};
    double b0[6] = {};
    double b1[6] = {};
    int noTrees = 0;

    treeNo = getTreeNo(treeNo);
    /* Gets number of trees for calculations*/
    speciesCode = getSpeciesCode(speciesCode);
    /* Get Species code from user*/
    dbh = getDbh(dbh);
    /* get DBH from user*/
    totalHt = getTotHt(totalHt);
    /*Gets tree height from user*/
    totalVol = calcTotVol(b0, b1, dbh, totalHt);
    /* Calculates values */

    /* All constants and variables
        int treeNo;
        int speciesCode;
        string speciesDesc[6];
        float dbh;
        int totalHt;
        double totalVol;
        int Species[6];
        double b0[6];
        double b1[6];
        int noTrees;
        double avgTotVol;
    */
    if (speciesCode = 11) {
        speciesDesc[0] = "Loblolly Pine";
    } else if (speciesCode = 12) {
        speciesDesc[1] = "White Pine";
    } else if (speciesCode = 13) {
        speciesDesc[2] = "Red Pine";
    } else if (speciesCode = 21) {
        speciesDesc[3] = "White Oak";
    } else if (speciesCode = 22) {
        speciesDesc[4] = "Red Oak";
    } else if (speciesCode = 23) {
        speciesDesc[5] = "Other Oak";
    }

    Species[0] = 11;
    Species[1] = 12;
    Species[2] = 13;
    Species[3] = 21;
    Species[4] = 22;
    Species[5] = 23;

    if (speciesCode = 11) {
        b0[0] = 1.2446;
    } else if (speciesCode = 12) {
        b0[1] = 0.000;
    } else if (speciesCode = 13) {
        b0[2] = 2.0822;
    } else if (speciesCode = 21) {
        b0[3] = .7316;
    } else if (speciesCode = 22) {
        b0[4] = 1.6378;
    } else if (speciesCode = 23) {
        b0[5] = .7554;
    }
    if (speciesCode = 11) {
        b1[0] = .002165;
    } else if (speciesCode = 12) {
        b1[1] = .002364;
    } else if (speciesCode = 13) {
        b1[2] = .002046;
    } else if (speciesCode = 21) {
        b1[3] = .001951;
    } else if (speciesCode = 22) {
        b1[4] = .002032;
    } else if (speciesCode = 23) {
        b1[5] = .002174;
    }
    totalVol = b0[6] + b1[6] * pow(dbh, 2) * totalHt;

    for (i = 0; i < treeNo; i++) {
        cout << "Tree Number " << i + 1 << ": " << speciesCode << dbh << totalHt
             << speciesDesc[6] << b0[6] << b1[6] << totalVol;
    }
}

/************************************************************************************************
 * *************/
int getTreeNo(int treeNo) {
    do {
        cout << "Please enter the number of trees :" << endl;
        cin >> treeNo;
        if ((treeNo <= 0) || (treeNo > 999)) {
            cout << "ERROR!!!,You cannot have more then999 entries" << endl;
        }
    } while ((treeNo <= 0) || (treeNo > 999));
    return treeNo;
}

int getSpeciesCode(int speciesCode) {

    do {
        cout << "Please enter your Species Code";
        cin >> speciesCode;

    } while ((speciesCode != 11) || (speciesCode != 12) ||
             (speciesCode != 13) || (speciesCode != 21) ||
             (speciesCode != 22) || (speciesCode != 23));

    cout << "ERROR!!!,That information does not exist wthin our system" << endl;

    return speciesCode;
}

float getDbh(float dbh) {
    do {
        cout << "Please enter the DBH of the tree, The DBH must be greter then "
                "and equal to  five and less then 50.6" << endl;
        cin >> dbh;
        if ((dbh < 5) || (dbh > 50.6)) {
            cout << "ERROR!!!, The DBH must be greter then and equal to five "
                    "and less then 50.6" << endl;
        }
    } while ((dbh < 5) || (dbh > 50.6));
    return dbh;
}

int getTotHt(int totalHt) {
    do {
        cout << "Please enter the height of the tree" << endl;
        cin >> totalHt;
        if ((totalHt < 24) || (totalHt > 160)) {
            cout << "ERROR!!!, Please enter a height thats not larger then "
                    "160, but greater then 24" << endl;
        }

    } while (totalHt < 24 || totalHt > 160);
    { return totalHt; }
}
double calcTotVol(double array[], double array1[], float dbh, int totalHt) {
    double totalVol;

    totalVol = array[6] + array1[6] * pow(dbh, 2) * totalHt;

    return totalVol;
}
您可能希望不断重复,直到获得有效的代码。在这种情况下,请使用
&&

while((speciesCode != 11) || (speciesCode != 12) || (speciesCode != 13) || ...)

@CaseyNelms最终将使其停止循环,但看起来您实际上想要
while((speciesCode!=11)&&&
修复了它,但它仍然在高度上运行我修复了高度,但之后它不断崩溃。这可能是我的calcTotVol函数吗?抱歉,我太迷路了,这是我的最后一次了,它把我撕裂了pieces@CaseyNelms包含六项的数组中的有效索引为0到5。访问第七项索引6未定义,可能导致v发生了非常奇怪的事情。哦,天哪,我觉得自己很愚蠢,但它一直显示一个未处理的异常,而且数字相差很远
while((speciesCode != 11) && (speciesCode != 12) && (speciesCode != 13) && ...)