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
此while语句中的条件永远不会为false,循环也永远不会退出。为了使其为false,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)
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) && ...)