Как я смогу найти максимальное значение в цикле?

#c #c 11

#c #c 11

Вопрос:

Я пытаюсь найти максимальную прибыль для жилого комплекса. Я использовал цикл, чтобы найти все разные прибыли, но мне нужно найти максимальное значение прибыли. Как я смогу найти максимальную прибыль? Должен ли я использовать цикл или другой способ сделать это? Я все еще новичок в программировании, помощь очень ценится.

 #include <iostream>

using namespace std;

int main()
{
    // Containers for all variables
    int units;
    int rent;
    int incrent;
    int maintain;
    int profit;

    // User input
    cout << "How many units are being rented: ";
    cin >> units;
    cout << "How much is rent for each occupied room: $";
    cin >> rent;
    cout << "How much will rent need to increase for someone to leave: $";
    cin >> incrent;
    cout << "How much money does it cost to maintain a occupied room: $";
    cin >> maintain;
    //cout << "At max units rented you make $" << units * rent - maintain << endl;

    //Profit calculations
    while(units >= 0)
    {
    cout << "While at " << units << " rented you make $" << (units * rent) - (maintain * units) << endl;
    
    rent = rent   incrent;
    units--;
    }
  

Комментарии:

1. Некоторые детали отсутствуют. Как вы определяете прибыль? Пример был бы полезен

2. В вашем случае вы перебираете единицы измерения, которые будут принимать те же другие значения, поэтому в вашем случае результат будет одинаковым для всех единиц измерения.

3. Вот простой способ выяснить, как это сделать, и он никогда не перестает работать. Просто достаньте чистый лист бумаги. Запишите, используя короткие простые предложения на простом английском языке, пошаговый процесс выполнения этого. Когда закончите, позвоните своей резиновой утке, чтобы договориться о встрече . После того, как ваша резиновая утка одобрит предложенный вами план действий, просто возьмите то, что вы записали, и переведите это непосредственно на C . Миссия выполнена!

4. Похоже, в коде отсутствует конец main

Ответ №1:

Альтернативой самодельному циклу for является использование std::max_element like:

 #include <iostream>
#include <algorithm>

int main() {
    int arr[] = { 4, 1, 2, 5, 7 };
    std::cout << *std::max_element(arr, arr   5) << std::endl;
    return 0;
}
  

Ответ №2:

вы можете использовать логику в приведенном ниже коде для решения вашей проблемы, надеюсь, это поможет.

 #include <iostream>

using namespace std; 

int main() {

   //n is the number of elements in the array

   int n, largest;

   int num[50];

   cout<<"Enter number of elements you want to enter: ";

   cin>>n;
   
   /* Loop runs from o to n, in such a way that first
    * element entered by user is stored in num[0], second 
    * in num[1] and so on. 
    */

   for(int i = 0; i < n; i  ) {

      cout<<"Enter Element "<<(i 1)<< ": ";

      cin>>num[i];

   }

   // Storing first array element in "largest" variable

   largest = num[0];

   for(int i = 1;i < n; i  ) {

      /* We are comparing largest variable with every element
       * of array. If there is an element which is greater than
       * largest variable value then we are copying that variable
       * to largest, this way we have the largest element copied
       * to the variable named "largest" at the end of the loop 
       */

      if(largest < num[i])

         largest = num[i];

   } 

   cout<<"Largest element in array is: "<<largest;

   return 0;

}
  

Вывод:

 Enter number of elements you want to enter: 5
Enter Element 1: 19
Enter Element 2: 21
Enter Element 3: 3
Enter Element 4: 89
Enter Element 5: 13
Largest element in array is: 89