[英]Passing a struct data to a variable C++?
首先,我想為我糟糕的英語道歉,並提前感謝您的閱讀和幫助。
基本上我有兩個結構,持有3個整數:數字fractionAnswers
然后我有一個名為addSubFractions的類,它將兩個數字結構類型作為參數並返回一個fractionAnswers結構類型。 我的目標是將addSubFractions類的返回值分配給名為answers的數字類型struct變量。
我對C ++很新,我以為我能夠在邏輯上做到這一點,我在沒有任何好消息的情況下盡可能地搜索。
這是代碼的一部分,對我不起作用:
int main() {
numbers first, second, answer ;
cout << "Enter fraction" ;
cin >> first.wholeNumber ;
cin >> first.numerator ;
cin >> first.denominator ;
cout << "Enter second fraction" ;
cin >> second.wholeNumber ;
cin >> second.numerator ;
cin >> second.denominator ;
answer = addSubFractions(first, second) ;
cout << "Your answer is:" << answer.numerator << "/" << answer.denominator ;
return 0 ;}
這是我正在談論的另一堂課
fractionAnswers addSubFractions(numbers firstFraction, numbers secondFraction) {
numbers answerFraction, holdFraction1, holdFraction2 ;
fractionAnswers someAnswers ;
//Multiply to get same denominator
holdFraction1.denominator = firstFraction.denominator * secondFraction.denominator ;
holdFraction2.denominator = firstFraction.denominator * secondFraction.denominator ;
//Numerator multiplication to match new denominator
holdFraction1.numerator = firstFraction.numerator * secondFraction.denominator ;
holdFraction2.numerator = secondFraction.numerator * firstFraction.denominator ;
//Reduce fractions first
while (true) {
if(!reduceFractions(holdFraction1))
break;
}
//Reduce fractions second
while (true) {
if(!reduceFractions(holdFraction2))
break;
}
someAnswers.numeratorAns = holdFraction1.numerator + holdFraction2.numerator ;
someAnswers.denominatorAns = holdFraction2.denominator ;
return someAnswers ;
}
這是reduceFractions
bool reduceFractions(numbers Fractions) {
bool answer ;
for (int i = Fractions.numerator ; i >= 2 ; i--) { //This will keep running until i = the GFC for both numerator & denominator
if ((((Fractions.numerator % i) == 0) && (Fractions.denominator % i) == 0)) {
Fractions.numerator /= i ;
Fractions.denominator /= i ;
answer = true ;
}
}
answer = false ;
return answer ;
}
這些是結構
struct numbers {
int numerator ;
int denominator ;
int wholeNumber ;
};
struct fractionAnswers {
int numeratorAns ;
int denominatorAns ;
int wholeNumberAns ;
};
這段代碼不應該編譯,這是正確的嗎? 你不能類型的值賦給fractionAnswers
到類型的變量numbers
,即使他們有成員相同的布局。 一些選項是:
將addSubFractions
的返回類型更改為numbers
。
更改answer = addSubFractions(first, second) ;
to fractionAnswers temp = addSubFractions(first, second); answer.numerator = temp.numeratorAns; answer.denominator = temp.denominatorAns; answer.wholeNumber = temp.wholeNumberAns;
fractionAnswers temp = addSubFractions(first, second); answer.numerator = temp.numeratorAns; answer.denominator = temp.denominatorAns; answer.wholeNumber = temp.wholeNumberAns;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.