2011-11-12 19 views
1

を知らなくても、アレイ内の分要素が、それは特別な何もないが、私はここで壁にぶつかるんでした...C++最大/ Iは、タスクを与えられた配列のサイズ

私はそれらを比較する必要が算術手段を取得した後、出力最高と最低のもの。

xは学生番号、vid []は算術平均です。例えば

学生数xが算術平均VIDを持っている[i]を

とタスクは、学生が最高と1が最低の手段を持っている持っている出力に私を望んでいます。

max()やmin()のようなものを使うことができない最悪の部分は、合計で何人の学生がそこにいるかわからないからです。さらに、それらは同じ変数名vid []を持つすべての配列です。

すべてのヘルプは=いただければ幸いです)

int main() 
{ 
    int mokSK=0, p1[25], p2[25], p3[25], x[25], vid[25], iv=0; 
    ifstream inFile("inFile.in"); 
    ofstream outFile("outFile.out"); 


    inFile >> mokSK; 

    for(int i=0;i<mokSK;i++) 
    { 
     inFile >> x[i] >> p1[i] >> p2[i] >> p3[i]; 
     vid[i]=(p1[i]+p2[i]+p3[i])/3; 
     outFile<< x[i] <<" " << vid[i] << endl; 
    } 

    return 0; 
} 
+2

数字の束があり、すでに最大値を知っている場合は、コレクションにもう1つの数値を追加した後、その束の最大値をどのように見つけることができますか? –

+0

std :: vectorを使用して、このような最小/最大値を得ることができます。http://stackoverflow.com/questions/182957/position-in-vector-using-stl – jbat100

答えて

5

あなたはO(1)maxとminは学生を段階的にアクセスしたい場合は、読解の初めから、各読書のパスであなたの最大と最小の学生を更新してください。

より明確にする:必要に応じて、各生徒データの読書パスで、実行の最初から最低および最高の段階の学生を追跡し、最大および最小の段階的な学生を更新する。

+0

意味が分かりませんでした。 IDを知らずに配列を比較する関数はありませんか? – RnD

+0

あなたはn個の数字を持っていて、n個の数字の最小値と最大値を知っていると思います。私はあなたに別の番号を与え、それらのn + 1番号の最小と最大の要素を求めます。どのように私の質問のためのソリューションを計算しますか? –

-1
int main() 
{ 
    int mokSK=0, p1[25], p2[25], p3[25],x[25],vid[25],iv=0; 
    int minmean = INT_MAX; int minstud= 0;// initialize minmean and max mean with first mean 
    int maxmean = 0; int maxstud= 0; 
  ifstream inFile("inFile.in"); 
    ofstream outFile("outFile.out"); 
    inFile >> mokSK; 
  for(int i=0;i<mokSK;i++) 
    { 
    inFile >> x[i] >> p1[i] >> p2[i] >> p3[i]; 
    vid[i]=(p1[i]+p2[i]+p3[i])/3; 
    if(vid[i]>maxmean){maxmean = vid[i]; maxstud = i;} 
    if(vid[i]<minmean){minmean = vid[i]; minstud = i;} 
    // not handled if multple students have maxmean or minmean 
    outFile<< x[i] <<" " << vid[i] << endl; 
    } 

outFile << "Max mean: " << maxmean << ", student id: " << maxstud << endl; 
outFile << "Min mean: " << minmean << ", student id: " << minstud << endl; 
return 0; 
} 
+0

minmeanは常にゼロになります –

+0

そうですね: – neagoegab

+1

これらの種類のものでは、常にミックスと最大値を0th **要素に割り当て、** 1 **から** size -1 ** –

関連する問題