Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 109
1

Ветвления: В выходной файл вывести "Degree with honors", если диплом с отличием, и "Ordinary degree" иначе.

29.07.2017, 10:02. Показов 1011. Ответов 5
Метки нет (Все метки)

Где ошибка? На проверочном сайте проходит 96%?


Сергей скоро заканчивает обучение в институте. Уже написана пояснительная записка к выпускной квалификационной работе и оформлены все документы. Теперь Сергей задумался, не может ли он получить по результатам обучения диплом с отличием. В официальных документах он нашел следующее: "Студент получает диплом с отличием, если количество оценок "хорошо" не превышает 25% (в исключительных случаях допускается одна оценка "удовлетворительно"".
Более формально, студент получает диплом с отличием, если у него не более одной оценки "удовлетворительно", а количество оценок "хорошо" и "удовлетворительно" не превышает 25% от общего количества оценок. Изучив свою зачетную книжку, Сергей составил список всех оценок, которые он получил за годы обучения в институте. Список получился достаточно большим: оценок оказалось n штук. Напишите программу, которая по этому списку определит, какой диплом получит Сергей в соответствии с указанным выше правилом.
Входные данные

Первая строка входного файла содержит число n (1 ≤ n ≤ 100000). Вторая строка входного файла содержит nчисел – оценки Сергея. Числом 5 обозначается оценка "отлично", числом 4 – оценка "хорошо", числом 3 – оценка "удовлетворительно". Каждое число во второй строке равно либо 3, либо 4, либо 5.
Выходные данные

В выходной файл выведите "Degree with honors", если Сергей получает диплом с отличием, и "Ordinary degree" иначе.

Входные данные
Sample 1
5
5 5 5 5 4

Sample 2
4
3 3 4 5

Выходные данные
Sample 1
Degree with honors

Sample 2
Ordinary degree

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 #include<iostream>
using namespace std;
int main()
{
int n,a,k3=0,k4=0,k5=0;
cin>>n;
for(int i=1;i<n;i++)
{
cin>>a;
if(a==3) k3++;
if(a==4) k4++;
if(a==5) k5++;
}
if(((k5>k4 && k3==1) || (k5>k4 && k3==0)) && ((k3+k4)<=n*0.25)) cout<<"Degree with honors";
else cout<<"Ordinary degree";
return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2017, 10:02
Ответы с готовыми решениями:

Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO";
Задача. В файле input.txt содержится неприрывная строка нулей и единиц. Если в строке есть хоть...

Если в обеих строках чаще всего встречается одна и та же буква, то вывести на экран сообщение "да", иначе – "нет"
Даны две строки символов, состоящие из строчных английских букв, не содержащие пробелов. Если и в...

Дано четырехзначное число. Если оно читается слева направо и справа налево одинаково, то вывести "да", иначе "нет"
Дано четырехзначное число. Если оно читается слева направо и справа налево одинаково, то вывести...

Как сделать: если во всех ячейках диапазона знач.="выполнено", то в данной ячейке тоже "выполнено" иначе "в работе"
Прилагаю файл. В ячейке G17 формула, в которой надо упростить условие: Если в диапазоне ячеек...

5
432 / 424 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
29.07.2017, 10:05 2
Лучший ответ Сообщение было отмечено MariaFitzgerald как решение

Решение

Почему в 7й строке for(int i=1;
1
1353 / 514 / 68
Регистрация: 21.07.2015
Сообщений: 1,281
29.07.2017, 15:29 3
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
if(((k5>k4 && k3==1) || (k5>k4 && k3==0)) && ((k3+k4)<=n*0.25))
C++
1
if( (k3 <= 1) && ( ( (k3 + k4) * 4) <= n) )
1
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 109
29.07.2017, 16:28  [ТС] 4
shmkv, нет, не получилось
0
1353 / 514 / 68
Регистрация: 21.07.2015
Сообщений: 1,281
29.07.2017, 16:59 5
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
shmkv, нет, не получилось
Тебе oldnewyear написал, что цикл надо начинать с 0. В этом основная ошибка, а if избыточен о чем дополнил я.
C++
1
for(int i=0;i<n;i++)
1
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 109
29.07.2017, 17:16  [ТС] 6
shmkv, большое спасибо, все вышло
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2017, 17:16

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Микропроцессор КР580, вывод символов на дисплей, алгорит ветвления "если... иначе"
Задача: В четвертую слева позицию дисплея вывести символ А, если нажата клавиша ADDR, иначе -...

Если навел мышкой на 1 то вывести "единица", если 2 то "Двойка", если на 3 то "тройка" и тд., и это все в одной функции
Ребят, выручайте. &lt;div id=&quot;1&quot; onMouseOver=&quot;inf()&quot; onMouseOut=&quot;noinf()&quot;&gt;1&lt;/div&gt; &lt;br&gt; ...

Как написать регулярное выражение для выдергивания английских букв и символов: "+", ",", ":", "-", " ", "!", "?" и "."
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и...

Дан массив строк: "red", "green", "black", "white", "blue". Запишите в файл элементы массива построчно (в новой строке)
пишу так но не помогает: static void Main(string args) { string...


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

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

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