Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

На многих соревнованиях выступление спортсменов оценивается определённым количеством судей. Каждый судья выставляет оценку в диапазоне от 1 до 10 баллов. Далее одна наибольшая и одна наименьшая оценки отбрасываются и подсчитывается сумма оценок, которые остались.
Напишите программу, которая определяет количество баллов, полученных спортсменом от судей.
Ввод. Сначала вводится натуральное число N – количество судей (3≤N≤20). Затем вводятся N чисел – оценки, которые получил спортсмен.
Вывод. Выводится одно число – сумма баллов, полученных спортсменом.
Мне не понятно как ввести данные от множества судей.... Мож кто знает?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2013, 11:09     Написать программу выставления судейских оценок
Посмотрите здесь:
Написать программу для школьных оценок (отл., хорошо, удовл., неуд.) C++
C++ Создайте программу для ввода и вывода фамилий и оценок студентов
Составьте программу вычисления среднего балла успеваемости ученика, введя n оценок C++
C++ Ввод оценок
C++ Массив оценок в классе
C++ Определить количество отличных оценок
C++ Определить количество неудолетворительных оценок
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 1
04.07.2013, 11:13     Написать программу выставления судейских оценок #2
Цитата Сообщение от FSC Посмотреть сообщение
Мне не понятно как ввести данные от множества судей.... Мож кто знает?
По очереди?
C++
1
2
3
4
int judge1, judge2, judgeDredd;
cin >> judge1;
cin >> judge2;
cin >> judgeDredd;
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,377
Записей в блоге: 10
Завершенные тесты: 1
04.07.2013, 11:17  [ТС]     Написать программу выставления судейских оценок #3
Дело в том, что судей то от 3 до 20! А для каждого писать cin >> j1; cin>> j2;.... Это нереально долго и места много займет!
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 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;
}
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,377
Записей в блоге: 10
Завершенные тесты: 1
04.07.2013, 11:39  [ТС]     Написать программу выставления судейских оценок #5
А вот как бы для всего этого сделать чтобы еще и cin>>judge; воспринимал сколько юзер ввел! Можно ли как-нибуть без
cout << "Введите количество судей";
cin <<judge;
if (judge=3){код};
if (judge=4){код};
.....
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 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;
}
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,377
Записей в блоге: 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)
Правильно?
Да уж спасибо, помогли!
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 1
04.07.2013, 12:04     Написать программу выставления судейских оценок #8
Цитата Сообщение от FSC Посмотреть сообщение
Я там подправил немного min и max)
Правильно?
Не очень. Если, к примеру, у нас N будет равняться семи, то judge[20] не будет существовать. Точнее будет содержать какой-нибудь произвольный мусор.
У меня judge[0] написано лишь потому, что N по условию всегда больше нуля (иначе return). И следовательно он обязательно будет существовать.
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,377
Записей в блоге: 10
Завершенные тесты: 1
04.07.2013, 15:11  [ТС]     Написать программу выставления судейских оценок #9
А, понял)
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
// суммируем элементы массива
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,377
Записей в блоге: 10
Завершенные тесты: 1
04.07.2013, 15:25  [ТС]     Написать программу выставления судейских оценок #11
Хм, возможно
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 1
05.07.2013, 10:20     Написать программу выставления судейских оценок #12
Цитата Сообщение от hwmlex Посмотреть сообщение
По-моему, здесь лучше использовать дин. массивы.
Поясните, пожалуйста свою мысль.
Чем динамические массивы в данном случае лучше статических? Какие это даст преимущества?
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 262
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, а статическим надо давать размер прямо в коде.

+++ могу ещё и объяснение приписать, но если ты понял предыдущие коды тогда я думаю не надо)
hwmlex
41 / 41 / 3
Регистрация: 30.01.2013
Сообщений: 133
05.07.2013, 13:06     Написать программу выставления судейских оценок #14
SatanaXIII, Чтобы не выделять дополнительную память, если количество судей будет меньше 20.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2013, 13:08     Написать программу выставления судейских оценок
Еще ссылки по теме:
C++ Запись оценок и имен в отдельные переменные
C++ Определить наименьшую из средних экзаменационных оценок студентов
Вывести список студентов по возрастанию оценок по математике. C++
C++ Хранение списка студентов и оценок в одном txt файле
из N выставленных оценок отбросить минимальную и максимальную и усреднить оставшиеся оценки C++

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

Или воспользуйтесь поиском по форуму:
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 262
05.07.2013, 13:08     Написать программу выставления судейских оценок #15
стоп, стоп!!! какой ещё пункт 5.9, я не писал этот код ради наживы) там и намёка на это не было!!!
Yandex
Объявления
05.07.2013, 13:08     Написать программу выставления судейских оценок
Ответ Создать тему
Опции темы

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