Поиск человека, который ел меньше всего в C ++ - PullRequest
0 голосов
/ 24 июня 2018

Я написал код, который позволяет увидеть, кто из вас ел больше и меньше. Тем не менее, мой код не работает, чтобы найти, кто ел меньше всего. Я смог найти, кто ел больше всего, и я попытался использовать противоположный код, чтобы найти, кто ел меньше. Вот код:

#include <iostream>
using namespace std;
int main()
{
    int people[10] = { 1,2,3,4,5,6,7,8,9,10 };
    int pancakes[10];
    int m = 0; // most pancakes eaten
    int l = 1; // least pancakes eaten
    int mp = 0; // most people
    int lp = 1; // least people
    for (int x = 0; x < 10; x++)
    {
    cout << people[x] << " ate: ";
        cin >> pancakes[x];
    }
    for (int x = 0; x < 10; x++)
    {
        if (pancakes[x] > m)
        {
            m = pancakes[x];
            mp = people[x];
        }
        else if (pancakes[x] <= l)
        {
            l = pancakes[x];
            lp = people[x];
        }
    }
    cout << endl;
    cout << mp << " person ate most: " << m << "  pancakes\n";
    cout << lp << " person ate least: " << l << " pancakes\n";
    return 0;
}

P.S. Я могу использовать только эти:

  • переменные, типы данных и числовые операторы
  • базовый ввод / вывод
  • логика (операторы if, операторы switch)
  • петли (для пока, пока)
  • Массивы

1 Ответ

0 голосов
/ 24 июня 2018

Либо инициализируйте l большим числом, либо лучше сделайте l равным некоторому значению из массива, например: l = pancakes[0].Добавьте эту строку ниже первой для чего-то вроде этого:

    for(int x = 0; x < 10; x++)
    {
        cout << people[x] << " ate: ";
        cin >> pancakes[x];
    }

m = pancakes[0];
l = pancakes[0];
...

m и l должны быть фактическими значениями из массива pancakes, а не случайными значениями.

Ваш код не работал, потому что вы установили l на 1, и только если кто-то съел меньше 1 блина, будет выполнен код внутри последнего оператора if.

...