学校向けのプロジェクトがあります。彼らは、10*10 の配列にする必要があるデータ ファイルをくれました。この配列は上三角形である必要があります。つまり、対角線以下の値はすべてゼロでなければなりません。このデータ ファイルは、プロジェクトがステージごとにかかる時間です。これは、すべての [i][j] が i から j までの段階の時間を表すことを意味します。問題をさらに複雑にするために、列ごとの最長時間を見つけて、次の列の最長時間に追加するよう求められます。これまでの私のコードは次のとおりです。
#include <iostream>
#include<iomanip>
#include <fstream>
#include <cmath>
using namespace std;
//Function prototype
int minCompletionTime (int Data[], int numTasks);
int main()
{
//Declaring and initializing variables
int num_Events(0), completion_Time(0);
int startSearch(0), endSearch(0);
const int SIZE(10);
char datch;
//Declaring an array to hold the duration of each composite activity
int rows(0),duration_Data [10];
//Declaring an input filestream and attaching it to the data file
ifstream dataFile;
dataFile.open("duration.dat");
//Reading the data file and inputting it to the array. Reads until eof
//marker is read
while (!dataFile.eof())
{
//Declaring an index variable for the array
//Reading data into elements of the array
dataFile >> duration_Data[rows];
//Incrementing the index variable
rows++;
}
//Taking input for the number of events in the project
cout << "Enter the number of events in the project >>> ";
cin >> num_Events;
//Calling the function to calculate the minimum completion time
completion_Time = minCompletionTime(duration_Data, num_Events);
//Outputting the minimum completion time
cout << "The minimum time to complete this project is " << completion_Time
<< "." << endl;
}
int minCompletionTime (int Data[], int numTasks)
{
int sum=0;
//As long as the index variable is less than the number of tasks to be
//completed, the time to complete the task stored in each cell will be
//added to a sum variable
for (int Idx=0; Idx < numTasks ; Idx++)
{
sum += Data[Idx];
}
return sum;
}
私のデータ ファイルには、この要素を保持する 6 つの要素しかありません: 9 8 0 0 7 5 操作を開始するには、データは次のようになります。
0 0 0 0 0 0 0 0 0 0
0 0 9 8 0 0 0 0 0 0
0 0 0 0 7 0 0 0 0 0
0 0 0 0 5 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
少し混乱します。ごめんなさい。1 列目と 2 列目は、同じように 0 と 1 行目の値を持つ必要があります。5 行目以降もすべてゼロにする必要があります。これは、他のデータ ファイルからの情報が追加されるためです。