Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,413
Записей в блоге: 10
Завершенные тесты: 1
#1

Написать программу выставления судейских оценок - C++

04.07.2013, 11:09. Просмотров 811. Ответов 14
Метки нет (Все метки)

На многих соревнованиях выступление спортсменов оценивается определённым количеством судей. Каждый судья выставляет оценку в диапазоне от 1 до 10 баллов. Далее одна наибольшая и одна наименьшая оценки отбрасываются и подсчитывается сумма оценок, которые остались.
Напишите программу, которая определяет количество баллов, полученных спортсменом от судей.
Ввод. Сначала вводится натуральное число N – количество судей (3≤N≤20). Затем вводятся N чисел – оценки, которые получил спортсмен.
Вывод. Выводится одно число – сумма баллов, полученных спортсменом.
Мне не понятно как ввести данные от множества судей.... Мож кто знает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2013, 11:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу выставления судейских оценок (C++):

Написать программу для школьных оценок (отл., хорошо, удовл., неуд.) - C++
Помогите, пожалуйста, разобраться почему не работает программа. Всем большое спасибо заранее за участие) Вот условие задания и ниже...

Создайте программу для ввода и вывода фамилий и оценок студентов - C++
помогите пожалуйста заранее спасибо. Создайте программу для ввода и вывода фамилий и оценок студентов. Введите не менее 10 студентов....

Составьте программу вычисления среднего балла успеваемости ученика, введя n оценок - C++
Прошу, помогите! Составить программу вычисления среднего балла успеваемости ученика вводя n оценок

Написать класс по строительству домов. Написать программу, демонстрирующую работу с классом. - C++
Собственно, в С++ немного насасываю, код читать умею, а прогать - нет. К сожалению, обстоятельства сложились так, что я поступил именно...

Надо написать программу на while или do while и написать алгоритм - C++
Помогите пожалуйста с задачей:(. Даны действительные числа x , y ( x > 1). Получить наименьшее число вида xn,что превышает y , где n -...

Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя - C++
Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя.

14
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
04.07.2013, 11:13 #2
Цитата Сообщение от FSC Посмотреть сообщение
Мне не понятно как ввести данные от множества судей.... Мож кто знает?
По очереди?
C++
1
2
3
4
int judge1, judge2, judgeDredd;
cin >> judge1;
cin >> judge2;
cin >> judgeDredd;
1
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,413
Записей в блоге: 10
Завершенные тесты: 1
04.07.2013, 11:17  [ТС] #3
Дело в том, что судей то от 3 до 20! А для каждого писать cin >> j1; cin>> j2;.... Это нереально долго и места много займет!
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
04.07.2013, 11:37 #4
Хм... В таком случае ничего нельзя придумать. Извините.
Хотя! Если использовать массив судей...
C++
1
2
3
int judge[20-3];
for(int corruptibleJudge=0; corruptibleJudge<20-3; corruptibleJudge++)
  cin >> judge[corruptibleJudge];
Не факт конечно, что заработает, но я хотя бы попробовал.

Добавлено через 15 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream.h>
 
int main()
{
int N, summ = 0;
cin >> N;
if(3<N && N>20){return 1;} // Alarm!
 
int *judge = new int[N];
for(int corruptibleJudge=0; corruptibleJudge<N; corruptibleJudge++)
  cin >> judge[corruptibleJudge];
 
{
int min = judge[0], max = judge[0];
for(int corruptibleJudge=0; corruptibleJudge<N; corruptibleJudge++)
  {
  if(judge[corruptibleJudge]<=min)min = judge[corruptibleJudge];
  if(judge[corruptibleJudge]>=max)max = judge[corruptibleJudge];
  }
 
for(int mostCorruptibleJudge=0; mostCorruptibleJudge<N; mostCorruptibleJudge++)
  summ += judge[mostCorruptibleJudge];
 
summ -= (min);
summ -= (max);
}
 
cout << summ;
 
delete[] judge;
 
cin.ignore(2);
return 0;
}
1
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,413
Записей в блоге: 10
Завершенные тесты: 1
04.07.2013, 11:39  [ТС] #5
А вот как бы для всего этого сделать чтобы еще и cin>>judge; воспринимал сколько юзер ввел! Можно ли как-нибуть без
cout << "Введите количество судей";
cin <<judge;
if (judge=3){код};
if (judge=4){код};
.....
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
04.07.2013, 11:45 #6
Ни черта не очень вас понял. Чтобы
Цитата Сообщение от FSC Посмотреть сообщение
воспринимал сколько юзер ввел!
надо какой-нибудь счетчик запилить. Типа
C++
1
2
3
4
5
6
int countJudge = 0;
for(int i=0; i<N; i++)
  {
  cin >> judge[i];
  countJudge++;
  }
С вот с этим вот моментом -
C++
1
2
if (judge=3){код};
if (judge=4){код};
вот так можно поступить:
C++
1
2
3
4
5
switch(judge)
{
case 3 : {код}; break;
case 4 : {код}; break;
}
1
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,413
Записей в блоге: 10
Завершенные тесты: 1
04.07.2013, 11:47  [ТС] #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
int main()
{
int N, summ = 0;
cin >> N;
if(3<N && N>20){return 1;} // Alarm!
 
int *judge = new int[N];
for(int corruptibleJudge=0; corruptibleJudge<N; corruptibleJudge++)
  cin >> judge[corruptibleJudge];
 
{
int min = judge[3], max = judge[20];
for(int corruptibleJudge=0; corruptibleJudge<N; corruptibleJudge++)
  {
  if(judge[corruptibleJudge]<=min)min = judge[corruptibleJudge];
  if(judge[corruptibleJudge]>=max)max = judge[corruptibleJudge];
  }
 
for(int mostCorruptibleJudge=0; mostCorruptibleJudge<N; mostCorruptibleJudge++)
  summ += judge[mostCorruptibleJudge];
 
summ -= (min);
summ -= (max);
}
 
cout << summ;
 
delete[] judge;
 
cin.ignore(2);
return 0;
}
Я там подправил немного min и max)
Правильно?
Да уж спасибо, помогли!
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
04.07.2013, 12:04 #8
Цитата Сообщение от FSC Посмотреть сообщение
Я там подправил немного min и max)
Правильно?
Не очень. Если, к примеру, у нас N будет равняться семи, то judge[20] не будет существовать. Точнее будет содержать какой-нибудь произвольный мусор.
У меня judge[0] написано лишь потому, что N по условию всегда больше нуля (иначе return). И следовательно он обязательно будет существовать.
0
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,413
Записей в блоге: 10
Завершенные тесты: 1
04.07.2013, 15:11  [ТС] #9
А, понял)
0
hwmlex
41 / 41 / 3
Регистрация: 30.01.2013
Сообщений: 133
04.07.2013, 15:22 #10
По-моему, здесь лучше использовать дин. массивы.

Что-то типа :
C++
1
2
3
4
5
6
7
int n;
printf("Кол-во оценок : ");
scanf("%d", &n);
int *a = new int [n-1];
// вводим поочередно оценки
// находим минимум и максимум и заменяем их в массиве на 0
// суммируем элементы массива
1
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,413
Записей в блоге: 10
Завершенные тесты: 1
04.07.2013, 15:25  [ТС] #11
Хм, возможно
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
05.07.2013, 10:20 #12
Цитата Сообщение от hwmlex Посмотреть сообщение
По-моему, здесь лучше использовать дин. массивы.
Поясните, пожалуйста свою мысль.
Чем динамические массивы в данном случае лучше статических? Какие это даст преимущества?
0
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
05.07.2013, 11:17 #13
вот код как всегда я делаю по проще
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
int main()
{
    int a = 0;
    int w = 0;
    int *sud = new int [w];
    cout << "vvediye colovo suddej: ";
    cin >> w;
    
    for(int i = 0;i < w;i++)
    {
        cout << "vvedite ochenki suddaj: ";
        cin >> sud[i];
    }
    for(int i = 0;i < w;i++)
    {
        cout << "pchenki suddej: " << sud[i] << " " << endl;
        a += sud[i];
    }
    cout << "obshai ochenka: " << a/w << endl;
}
я думаю интерфейс ты в состояние улучшить)))
 Комментарий модератора 
[Пункт 5.9 Правил]


+++ объяснение - динамическим масивам можно задавать их размер переменной у меня это w, а статическим надо давать размер прямо в коде.

+++ могу ещё и объяснение приписать, но если ты понял предыдущие коды тогда я думаю не надо)
0
hwmlex
41 / 41 / 3
Регистрация: 30.01.2013
Сообщений: 133
05.07.2013, 13:06 #14
SatanaXIII, Чтобы не выделять дополнительную память, если количество судей будет меньше 20.
0
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
05.07.2013, 13:08 #15
стоп, стоп!!! какой ещё пункт 5.9, я не писал этот код ради наживы) там и намёка на это не было!!!
0
05.07.2013, 13:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2013, 13:08
Привет! Вот еще темы с ответами:

Разработать алгоритм и тесты, написать и отладить программу Выполнить программу, проанализировать результат - C++
Из матрицы У(k, k) получить вектор Т, элементами которого являются элементы главной диагонали матрицы.

Записи.Процедура выставления оценок - Pascal ABC
Задача такая.Нужно создать базу данных в которой есть фамилии баллы и оценки студентов. Программа должна выставить первым k1% -5 ,...

Написать программу, запрашивающую десять оценок и вычисляющую итоговую - QBasic
Оценка за выступление спортсменки в фигурном катании вычисляется как среднее арифметическое оценок десяти судей, из которых не учитываются...

Вводя в цикле по 5 оценок каждого студента, подсчитать число студентов, не имеющих оценок 2 и 3 - C#
Помогите пожалуйста запутался) Вводя в цикле по 5 оценок каждого студента, подсчитать число студентов, не имеющих оценок 2 и 3. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru