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

Комментарии к задаче на массив от 0 до 14 - C++

Восстановить пароль Регистрация
 
blancoross1
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 45
20.12.2013, 15:56     Комментарии к задаче на массив от 0 до 14 #1
Здраствуйте , есть задача , примерно понятно все и как , но тонкостей не понимаю, прошу "разжевать" в понятной форме каждую строчку ) Ребят , если не сложно прямо каждую ...

Задача - Определить, есть ли в массиве L[0..14] значение, равное (min +max) / 2 и вывести номер первого значения, если есть, иначе сообщить, что нет.

#include <iostream.h>
int main()
{
const int n = 15;
int mas[n];

for( int i=0; i<n; i++ ) // Ввод
cin >> mas[i];

int valueFirst, min = mas[0], max = mas[0];
for( int i=0; i<n; i++ ) // Поиск минимального и максимального
{
if( mas[i] < max ) max = mas[i];
if( mas[i] > min ) min = mas[i];
}

bool flag = false;
for( int i=0; i<n; i++ )
if( mas[i] == (min+max)/2 )
{
flag = true;
valueFirst = mas[i];
break;
}

if( flag )
cout << valueFirst;
else
cout << "No";

return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2013, 15:56     Комментарии к задаче на массив от 0 до 14
Посмотрите здесь:

Удалить из строки комментарии вида '/* ... */". Игнорировать вложенные комментарии. C++
комметарии к задаче C++
C++ ошибка в задаче на палиндром
C++ Помощь в задаче с заменой
C++ Засада на 3-ей Задаче
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Neal
81 / 77 / 2
Регистрация: 14.06.2012
Сообщений: 261
20.12.2013, 16:15     Комментарии к задаче на массив от 0 до 14 #2
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
35
#include <iostream.h>
int main()
{
const int n = 15; // задаем количество элементов массива
int mas[n]; // объявляем массив
 
for(int i = 0; i < n; i++) // Ввод
cin >> mas[i]; // забиваем поэлементно данные в массив
// здесь позволю себе поправить код
// причина: возможно, это будет такой элемент, что не будет удовлетворять условию ниже
// valueFirst - не нужен, ведь храним значение, а не индекс элемента
//int valueFirst, min = mas[0], max = mas[0];
int min = sizeof(int); max = -sizeof(int);
for(int i = 0; i < n; i++) // Поиск минимального и максимального
{
if(mas[i] < max) max = mas[i]; // если максимальный, запомним
if(mas[i] > min) min = mas[i]; // если минимальный, запомним
}
 
bool flag = false; // флаг присутствия элемента (max+min)/2
for(int i = 0; i < n; i++) // перебираем элементы
if(mas[i] == (min+max)/2) // проверяем элемент на условие (max+min)/2
{
// если такой есть
flag = true; // флаг присутствия меняем на "1" (Почему 1? Почитайте про тип bool. Если вопроса не возникло, не читайте это)
break; // выход из цикла
}
 
if(flag) // проверяем флаг
cout << (max+min)/2; // если "1", выводим значение
else
cout << "No"; // если не "1", выведем "No"
 
return 0;
}
blancoross1
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 45
20.12.2013, 16:17  [ТС]     Комментарии к задаче на массив от 0 до 14 #3
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
20.12.2013, 16:21     Комментарии к задаче на массив от 0 до 14 #4
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
#include <iostream.h> // препроцессор для вводы/вывода
int main() // начало проги
{
const int n = 15;  //константа для создания массива
int mas[n];   // объявление какого-то массива
 
for( int i=0; i<n; i++ ) // цикл для ввода значений в массив
cin >> mas[i];
 
int valueFirst, min = mas[0], max = mas[0];   // объявляем судя по всему переменные для хранения макс и минимальных
// значений, first - видимо для хранения 1ого вхождения
for( int i=0; i<n; i++ ) // Поиск минимального и максимального
{
if( mas[i] < max ) max = mas[i];
if( mas[i] > min ) min = mas[i];
}
 
bool flag = false; // флаг для срабатывания ( там или 0 или 1) сейчас там 0
for( int i=0; i<n; i++ )
if( mas[i] == (min+max)/2 ) // если сумма мин и макс делёная на 2 = одному из элементов массива,то:
{
flag = true;   // уст флаг о том, что условие выполнени
valueFirst = mas[i]; // сохраняем то значение массива, которое первым удовлетворило условию
break;   // выходим из цикла
}
 
if( flag ) // если флаг сработал, то выводим эл массива
cout << valueFirst;
else
cout << "No";   // а если не сработал то пишем что еноты съели весь хлеб
 
return 0;   // Happy End
}
Yandex
Объявления
20.12.2013, 16:21     Комментарии к задаче на массив от 0 до 14
Ответ Создать тему
Опции темы

Текущее время: 05:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru