簡體   English   中英

我的程序可以運行但一直返回 0

[英]My program, works but keeps on returning 0

為具有以下評分政策的班級編寫評分程序: 有兩個測驗,每個測驗以 10 分為基礎評分。 有一次期中考試和一次期末考試,每門考試以 100 分計分。 C。 期末考試占成績的50%,期中考試占25%,兩次測驗加起來占總成績的25%。 (不要忘記對測驗分數進行歸一化。它們應該在平均之前轉換為百分比。)任何 90 或更高的成績是 A,任何 80 或更高(但小於 90)的成績是 B,任何 70 分或以上(但低於 80 分)的成績為 C,任何 60 分或以上(但低於 70 分)的成績為 D,任何低於 60 分的成績為 F。該計划將讀取學生的分數和輸出學生的記錄,其中包括兩個測驗和兩個考試成績以及學生整個課程的平均數字分數和最終字母成績。 定義並使用學生記錄的結構。

#include <iostream>
#include <string>
using namespace std;
struct Report {

public:

};

int inputQuizzone ( int& Quizz1); //input functions take read in the input

int inputQuizztwo ( int& Quizz2); // user inputs result of quizz. Each quizz 
                                  // is 10 points     
int  inputMideterm ( int& MidExam);

int  inputExam      ( int& Finall);

double OutputQuizz ( int& Q1, int& Q2); // this is meant to calculate the 
                                        // by adding quizz 1 and quizz two to 25%
double  Output ( int& Quizz);            

double OutputMideterm ( int MidExam);

double  OutputExam ( int& Final);

int main()
{

Report FinalGrade ;

int
 x , y ,z  , xz , gr;

   inputQuizzone( x);   
   inputQuizztwo( y);
   inputMideterm(z);
   inputExam( xz);
  cout << " Your Final Grades are " <<  '\n'
 << " Quizzes " << ""   << OutputQuizz( x, y) <<  '\n'
//<< "Quizz Two " << Quizz2<<  '\n'
<< " Mideterm " << OutputMideterm( z) <<  '\n'
<< " Finals " <<   OutputExam(xz)   << endl;




}


int inputQuizzone ( int& Quizz1)
{
cout << " Enter Your Quizz One Score over 10"<< endl;
cin >> Quizz1;

}

 int inputQuizztwo ( int& Quizz2)
{

cout << " Enter Your Second Quizz 2 Score over 10"<< endl;
cin >> Quizz2;

}

int inputMideterm ( int& MidExam)
{

cout << " Enter Your Midterm Score over 100"<< endl;
cin >> MidExam;

}


int inputExam ( int& Finall)
{

cout << " Enter Your Exam Score over 100"<< endl;
cin >> Finall;
return (Finall);

}

double OutputQuizz ( int& Q1, int& Q2)
{

int QR = 0;
QR = (((Q1 + Q2 ) / 20) * 25 ) ;


           return (QR);


}





double OutputMideterm ( int MidExam)

{

int QR = 0;
QR = (MidExam / 100) * 25;
return (QR);
}
double  OutputExam ( int& Final)
{

int QR = 0;
QR = (Final / 100) * 25;

return (QR);
}

不考慮計算值的方式,主要問題是,在您的輸出函數中,您正在執行整數運算來計算小於 1 的值。例如,在OutputQuizz(Q1 + Q2 ) / 20通常會小於 1。

要強制編譯器使用浮點數,請改用QR = (((Q1 + Q2 ) / 20.0) * 25.0 )

您將看到不為 0 的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM