C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

全員にボーナスを与え、C++で100点を超えないようにした後に合格する最大の学生


このチュートリアルでは、全員にボーナスを与え、100点を超えないようにした後、合格する最大の生徒を見つけるプログラムについて説明します。

このために、N人の生徒のマークを含む配列が提供されます。私たちの仕事は、100点を超える生徒がいなくても、各生徒に同じ量のボーナスマークを与えることで、より多くの生徒に試験に合格させることです(50点が必要です)。

#include<iostream>
#include<algorithm>
using namespace std;
int check(int n, int marks[]) {
   int* x = std::max_element(marks,marks+5);
   int bonus = 100-(int)(*x);
   int c = 0;
   for(int i=0;
   i<n;i++) {
      if(marks[i] + bonus >= 50) c += 1;
   }
   return c;
}
int main() {
   int n = 5;
   int marks[] = {0, 21, 83, 45, 64};
   cout<<check(n, marks)<<endl;
   return 0;
}

出力

3

  1. C++で任意の都市と駅の間の最大距離を見つける

    コンセプト 0からN-1までの番号が付けられたNの都市の数と、駅が配置されている都市に関して、私たちのタスクは、任意の都市とその最寄りの駅との間の最大距離を決定することです。駅のある都市は任意の順序で指定できることに注意してください。 入力 numOfCities = 6, stations = [2, 4] 出力 2 入力 numOfCities = 6, stations = [4] 出力 4 次の図は、6つの都市と、駅が緑色で強調表示されている都市を含む最初の例を示しています。したがって、この場合、最も近い駅からの最も遠い距離は2の距離で0です。したがって、最大距離は1です。

  2. C++で分割統治アルゴリズムを使用した最大サブアレイ合計

    正の値と負の値を持つデータのリストが1つあるとします。合計が最大である連続するサブ配列の合計を見つける必要があります。リストに{-2、-5、6、-2、-3、1、5、-6}が含まれているとすると、最大サブ配列の合計は7になります。これは{6、-2、-3の合計です。 、1、5} この問題は、分割統治法を使用して解決します。手順は次のようになります- 手順 − アレイを2つの部分に分割します 次の3つのうち最大のものを見つけます 左側のサブアレイの最大サブアレイ合計 右サブアレイの最大サブアレイ合計 サブアレイが中点を横切るようなサブアレイの最大合計 例 #include <i