• XSS.stack #1 – первый литературный журнал от юзеров форума

помогите с кодом на с++

silero

HDD-drive
Пользователь
Регистрация
27.01.2023
Сообщения
45
Реакции
-3
Всем привет, я только начинаю учится, было дано задание -
"Две команды студентов участвовали в олимпиаде по программированию. В первой команде было два человека, а во второй - четыре.

Баллы, которые набрал каждый студент, вводятся с консоли (сначала две оценки первой команды, а потом - четыре оценки второй).

В командном зачете сравниваются средние баллы каждой команды. Если средний балл первой команды больше, то нужно вывести слово "First", если больше средний балл второй команды, то слово "Second", а если эти средние баллы равны - то слово "Draw"
."
Там были даны входные данные, т.е 3 4 2 6 3 4, из них первые 3 и 4 это баллы первой команды, все остальное баллы первой команды, если посчитать, с.р первой команды 3.5, второй команды 3.75, тогда должно выводиться "Second" а у меня везде, при любых данных выводится "Draw" уже пересмотрел ролик об этой теме, так и не нашел ошибку, помогите пожалуйста, заранее спасибки:smile10:
C++:
#include <iostream>
#include <math.h>
using namespace std;
int main() {
    int a, b, c, d, e, h;
    double sr1, sr2;
    cin >> a >> b >> c >> d >> e >> h;
    if (sr1 > sr2) {
        sr1 = (a + b) / 2.0;
        cout << "First";
    }
    else {
        if (sr2 > sr1) {
            sr2 = (c + d + e + h) / 4.0;
            cout << "Second";
        }
    }
    if (sr1==sr2) {
        cout << "Draw";
        return 0;
    }
}
 
Пожалуйста, обратите внимание, что пользователь заблокирован
а ниче тот факт что ты не инициализируешь переменные sr1 и sr2 и потом их сравниваешь?
 
а ниче тот факт что ты не инициализируешь переменные sr1 и sr2 и потом их сравниваешь?
From a pedagogical perspective, the only interesting thing to come out of this piece of code is the mix-up in the ordering, like what made him compare first, then assign later inside the blocks? Just trying to get into the mind of a rookie. Telepathy from his brain suggests something like this:
"I only have 3 possible outcomes: First, Second, or Draw, so I'm gonna code each outcome in a separate conditional branch. Conceptually, that’s perfectly fine."

silero. Forget the stealer, you'll need to flesh out your incomplete/incorrect mental model of how computers execute instructions.
If you still have trouble, you have all sorts of pedagogic devices for building intuition:
 
а ниче тот факт что ты не инициализируешь переменные sr1 и sr2 и потом их сравниваешь?
==, это же значит что эти две переменные равны. вот я и написал, потому что в условии так надо было сделать, если не так, подскажи как изменить
 
а ниче тот факт что ты не инициализируешь переменные sr1 и sr2 и потом их сравниваешь?
и я не могу дать ей значение в коде, т.к в тесте, тестовых значений много, а не одно
 
"Две команды студентов участвовали в олимпиаде по программированию. В первой команде было два человека, а во второй - четыре.

Баллы, которые набрал каждый студент, вводятся с консоли (сначала две оценки первой команды, а потом - четыре оценки второй).

В командном зачете сравниваются средние баллы каждой команды. Если средний балл первой команды больше, то нужно вывести слово "First", если больше средний балл второй команды, то слово "Second", а если эти средние баллы равны - то слово "Draw"
."


C++:
#include <iostream>


int main()
{
    int a, b, c, d, e, h;

    cin >> a >> b >> c >> d >> e >> h;

    double sr1 = (a + b) / 2;
    double sr2 = (c + d + e + h) / 4;

    if (sr1 > sr2)
    {
        std::cout << "First";
    }
    else if (sr1 < sr2)
    {
        std::cout << "Second";
    }
    else
    {
        std::cout << "Draw";
    }
 
    return 0;
}
 
Последнее редактирование:
C++:
#include <iostream>


int main()
{
    int a, b, c, d, e, h;

    cin >> a >> b >> c >> d >> e >> h;

    double sr1 = (a + b) / 2;
    double sr2 = (c + d + e + h) / 4;

    if (sr1 > sr2)
    {
        std::cout << "First";
    }
    else if (sr2 < sr1)
    {
        std::cout << "Second";
    }
    else
    {
        std::cout << "Draw";
    }
 
    return 0;
}
у тебя тут небольшая ошибка else if (sr2 < sr1), знак не тот поставил, а так все работает, большое спасибо)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх