私は C++ の初心者で、各タスクを実行する関数を作成しようとして多くの問題を抱えています。メイン関数で各タスクを実行できると思いますが、それらを別々の関数に分割する方法がわかりません (例: .txt ファイルの読み取りとそれを別々の関数に表示する方法がわかりません)。
また、「スコア」については、「添え字には配列またはポインター型が必要です」というエラーメッセージが表示され続けますが、それが何を意味するのかわかりません。
注: プログラムを完全に終了していないため、curve、displaycurve、および averagecurve にはまだ関数が作成されていません。これは後で行います。
//this program reads data from a .txt file, displays the scores, finds the average score, finds the highest score, and displays the curve
#include <iostream>
#include <fstream>
using namespace std;
//function prototypes
void readscores (int); // read exam scores into an array from examscores.txt
void displayscores (int); // display scores in row of four scores
double average (const double scores [], int); //??? calculate average score and display
double maxscore (const double[], int); // find max and display
double curve (const double []); //find the "curve" based on the highest scores
double displaycurve (const double []);// display curves in rows of four
double averagecurve (const double []); //calculate the average curved score and display
int main ()
{
const int array_size = 30; //array size
double scores[array_size];//array of 30 elements
int count = 0;
ifstream inputfile;
//open file
inputfile.open("ExamScores.txt");
//read scores
while (count < array_size && inputfile >> scores[count])
count ++;
//display scores
cout << "The numbers are:";
for (count = 0; count < array_size; count++)
displayscores(scores[count]);
//calculate the average
cout << "The average is:";
average (scores, array_size);
//find the max score and display
cout << "The maximum score is:";
maxscore (scores, array_size);
return 0;
}
void displayscores (int num)
{
cout << num << " ";
}
double average (const double scores, int array_size)
{double total = 0;
double average;
for (int count = 0; count < array_size; count ++)
total += scores[count];
average = total /array_size;
}
double maxscore (const double scores, int array_size)
{double max;
max = scores [0];
for (int count = 1; count < array_size; count++)
{if (scores[count] > max)
max = scores[count];
}
return max;
}
これらは、.txt ファイル内の数値またはスコアです。
67 64 83 81 72 75 85 81 56 88 71 80 90 58 78 74 84 64 72 69 78 87 84 72 83 68 62 88 70 75
コーディングが完全に間違っている場合は申し訳ありませんが、教授は自分が教えていることを説明したくなく、学期はすでに半分終わっているため、基本的な概念に頭を悩ませようとしています.