함수를 사용하여 퀴즈 평균을 찾으려고합니다. 나는 그것을 계속 조정하지만 계속 10을 반환합니다. 프로그램의 전제는 사용자에게 퀴즈 (10 점 만점)를 제출하도록 요청하는 것입니다. 이러한 입력은 배열 quizarray[]
에 배치됩니다. 그런 다음 quizarray
에서 tempArray
으로 모든 정보를 복사합니다. 그런 다음 tempArray가 정렬되어 calcQuizAverage
함수에 사용됩니다. 이 함수는 두 개의 평균 중 하나를 반환합니다. 합 lowSum는 그들이 numberOfQuizzes
2 이상이며 잘 보였다 때 될 운명이 무엇을하면이는 내가 확인 한 numberOfQuizzes
배열의 평균 찾기 C++
double calcQuizAverage(int quizArray[], int numberOfQuizzes)
{
int a;
double avrg, sum, lowSum;
a = 0;
sum = 0;
lowSum = quizArray[0] + quizArray[1];
for (a=0; a< numberOfQuizzes; a++)
{
sum += double(quizArray[a]);
}
if (numberOfQuizzes <= 2)
{
avrg= double(((sum)/(10* numberOfQuizzes)) * 100);
return avrg;
}
else if (numberOfQuizzes > 2)
{
avrg= double(((sum-lowSum)/(10* (numberOfQuizzes - 2)))*100);
return avrg;
}
}
에 의해 결정된다. 2에 numberOfQuizzes
이하로, 그냥 여기에 10
를 반환 코드의 나머지 부분입니다 :
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
//Symbolic Constants
const int MAX=12;
//Function Prototypes
int buildQuizArray(int[]);
void printArray(string,int[],int);
double calcQuizAverage(int[],int);
void sortArray(int[],int);
int main()
{
int quizScores[MAX];
int compQuiz;
int tempArray[MAX];
double average;
int temp;
int i;
average = 0;
compQuiz = buildQuizArray(quizScores);
for(int i=0; i<MAX; i++)
{
tempArray[i] = quizScores[i];
}
sortArray(tempArray, compQuiz);
average = calcQuizAverage(tempArray, compQuiz);
cout<<endl<<"Your quiz average is "<<average<<endl;
printArray ("Quiz Scores", tempArray, compQuiz);
}
int buildQuizArray(int quizArray[])
{
int numQuiz, input, a;
a=0;
numQuiz=1;
cout << "Enter your score for quiz "<<numQuiz<<" (-1 to quit): ";
cin >> input;
while (input != -1)
{
quizArray[a] = input;
a++;
numQuiz++;
cout<< "Enter your score for quiz "<<numQuiz<<" (-1 to quit): ";
cin >> input;
}
return a+1;
}
void printArray(string reportTitle, int quizArray[], int numberOfQuizzes)
{
int a;
cout<< endl <<reportTitle <<endl<<"-----------"<<endl;
for (a=1; a<numberOfQuizzes; a++)
{
cout<< "Quiz " << a <<": " << setw(2) <<quizArray[a-1] <<"/10"<<endl;
}
}
double calcQuizAverage(int quizArray[], int numberOfQuizzes)
{
int a;
double avrg, sum, lowSum;
a = 0;
sum = 0;
lowSum = quizArray[0] + quizArray[1];
for (a=0; a< numberOfQuizzes; a++)
{
sum += double(quizArray[a]);
}
if (numberOfQuizzes <= 2)
{
avrg= double(((sum)/(10* numberOfQuizzes)) * 100);
return avrg;
}
else if (numberOfQuizzes > 2)
{
avrg= double(((sum-lowSum)/(10* (numberOfQuizzes - 2)))*100);
return avrg;
}
}
void sortArray(int num[], int numberOfQuizzes)
{
int i, j, flag = 1;
int temp;
for(i = 1; (i <= numberOfQuizzes) && flag; i++)
{
flag = 0;
for (j=0; j < (numberOfQuizzes -2); j++)
{
if (num[j+1] < num[j])
{
temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
flag = 1;
}
}
}
return;
}
1. 나누기 전에 가볍게 던지기 전에 캐스팅해야한다. 2. 매직 넘버 10과 100은 무엇입니까? 100 %로 변환하면 이해할 수 있습니다. 퀴즈 나 무언가 당 최대 점수가 10 점입니까? –
예, 죄송합니다. 그것을 언급하는 것을 잊었다. 나눠주기 전에 캐스팅 한다는게 무슨 뜻이야? <-novice – Ekko
calcQuizAverage()는 무엇을 반환해야합니까?'퀴즈 평균'이 매개 변수 배열의 평균 값과 같은가요? – Constantin