Как повторить цикл для одного и того же ввода несколько раз - PullRequest
0 голосов
/ 10 мая 2018

Я хотел бы получить тот же ввод, но я хочу назначить совокупный счет 2-го прогона для ag2 вот мой код

int c1=0, c2=0, c3=0, c4=0, c5=0, c6=0;
    for (int id = 1; id <= 5; id = id + 1){

        cout << "Enter student id and marks of student courses";
            cin >> id >> c1 >> c2 >> c3 >> c4 >> c5;
            int ag1 = 0,ag2=0,ag3=0,ag4=0,ag5=0;
            ag1 = c1 + c2 + c3 + c4 + c5;

Кто-нибудь может направить меня? В основном, программа состоит из 5 студентов, которые проходят 5 курсов, а затем подсчитывают общий балл и говорят, кто стал выше.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

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

вот так (псевдокод):

int best_student = 0;
int best_marksum = 0;
for (int i = 0; i< 5 ; ++i)
{
    // read students id
    int marksum = 0;
    for (int j = 0; j < 5 ; ++i)
    {
        // read student mark
       marksum += mark;
    }
    if (marksum > best_marksum)
    {
        best_student = student_id;
        best_marksum = marksum;
    }

}
// finally print the result

Это должно быть то, что вам нужно, чтобы понять это самостоятельно

0 голосов
/ 10 мая 2018

Я не буду его кодировать для вас, но я могу дать вам несколько советов.

Если вы собираетесь сделать cin > переменной, вам не нужно ее инициализироватьна 0 раньше.Вы можете просто объявить их как int c1, c2,..

В циклах for, мы обычно начинаем с нашего счетчика с 0, а не 1. Это потому, что когда мы перебираем структуры массива, они начинаются с 0, поэтому мы«id» до <нашего лимита.Если вы начнете с одного, вам придется начать с «id - 1», чтобы перебрать массив. </p>

Этот id = id + 1 мы обычно печатаем как id++.Это намного короче и интуитивно понятнее.

Теперь к вашей проблеме.Если вы хотите сделать то же самое для ag1 ... ag5, вам нужно поместить переменные "ag" в массив.Вы можете сделать это разными способами.Один из них:

int ags[5];

Теперь вы можете сделать ags[0]=15; и с этого момента в массиве "ags", позиция 0, есть "15".Чтобы получить это «15», вы должны сделать int oneAg = ags[0];, а в «oneAg» было бы 15.

Если в этом примере вы замените 0 своей переменной индекса цикла for, в вашем случае «id»(начиная с 0), вы можете эффективно сохранить 5 агов.Будьте осторожны, что вы не можете сделать cin >> id внутри цикла, иначе вы нарушите цикл.Используйте другую переменную для идентификатора, который вы прочитали.

Удачного кодирования.Мы все, даже те, кто знает МНОГО, начинаем так же, как и вы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...