nmax – порядковий номер максимального числа (номери завжди цілого типу)
Проміжні:
- i – параметр циклу (цілого типу)
Алгоритм
- Спочатку потрібно ввести кількість чисел n.
- Потім потрібно встановити початкове значення змінній nmax=0.
- У циклі будемо виконувати такі дії:
- Вводимо число у змінну a.
- Якщо це перше число або введене число a > max,
то змінюємо значення змінної max на a оператором max=a та запам’ятовуємо порядковий номер числа оператором nmax=i.
- Якщо введене число a <= max, то нічого не робимо, тобто значення max та nmax не змінюється.
- Коли цикл закінчиться, тобто будуть введені всі n чисел, у змінній max буде значення найбільшого з чисел,
а у змінній nmax його порядковий номер. Ці дані виводяться на екран.
Програма для пошуку максимального числа
#include <iostream>
using namespace std;
int main()
{
int i, n, max, nmax = 0, a; // i - лічильник, n - кількість чисел
// max - максимальне значення
// nmax - позиція максимального числа
// a - поточне число
cin >> n; // Введення кількості чисел
// Цикл для обробки n чисел
for (i = 1; i <= n; i++)
{
cin >> a; // Введення поточного числа
// Перевірка чи це перше число або більше за поточний максимум
if (nmax == 0 || a > max)
{
max = a; // Оновлення максимального значення
nmax = i; // Оновлення позиції максимуму
}
}
// Виведення результату
cout << max << " " << nmax;
return 0;
}
Детальне пояснення програми
Ця програма виконує наступні дії:
- Зчитує кількість чисел
n, які потрібно обробити
- Послідовно зчитує
n чисел з вхідних даних
- Знаходить максимальне число та його позицію у послідовності
- Виводить максимальне число та його позицію
Ключові особливості:
nmax == 0 - умова для ініціалізації першого числа як максимального
a > max - умова для оновлення максимального значення
- Програма зберігає як значення максимуму, так і його позицію
- Якщо всі числа однакові, буде знайдено перше таке число
Тестування роботи програми
Тест 1:
Вхідні дані:
5
10 30 20 40 25
Вихід:
40 4
Тест 2:
Вхідні дані:
3
-5 -2 -8
Вихід:
-2 2
Приклад 2
Ввести з клавіатури n будь-яких цілих чисел. Знайти мінімальне серед додатних та його порядковий номер.
Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа.
Якщо додатних чисел немає, то вивести повідомлення.
Результат роботи програми
| Ввід | Вивід | Пояснення |
5
4 -1 4 6 -7
| 4 3 | Перше число 5 це кількість чисел.
Серед цих 5 чисел найменше серед додатних 4. Таких чисел два. Нам потріно останнє з номером 3
|
3
-4 -1 -7
| Net > 0 | Перше число 3 це кількість чисел.
Серед цих 3 чисел додатних немає.
|
Змінні:
Вхідні:
- n – кількість чисел(цілого типу)
- a – число
Вихідні:
- min –мінімальне додатне число.
- nmin – порядковий номер мінімального числа
Проміжні:
- i – параметр циклу (цілого типу)
Алгоритм
- Спочатку потрібно ввести кількість чисел n.
- Потім потрібно встановити початкове значення змінній nmin.
- У циклі будемо виконувати такі дії:
- Вводити наступне число у змінну a.
- Будемо запам'ятовувати значення a та його номер (min=a; nmin=i;) у двох випадках:
якщо зустріли перше додатне число (a>0 && nmin==0) або
якщо зустріли додатне число (не перше) яке менше або = min
- Коли цикл закінчиться, тобто будуть введені всі n чисел, то можливі два варіанти:
- у змінній nmin 0 (немає додатних чисел), тоді виводимо на екран Net > 0
- у змінній nmin не 0. Тоді у змінній min буде значення найменшого з додатних чисел, а у змінній nmin його порядковий номер. Ці дані виводяться на екран
Програма для пошуку найменшого додатного числа
#include <iostream>
using namespace std;
int main()
{
int i, n, min, rmin = 0, a; // i - лічильник, n - кількість чисел
// min - мінімальне додатне значення
// rmin - позиція мінімального додатного числа
// a - поточне число
cin >> n; // Введення кількості чисел
// Цикл для обробки n чисел
for (i = 1; i <= n; i++)
{
cin >> a; // Введення поточного числа
// Перевірка чи число додатне і (перше або менше за поточний мінімум)
if (a > 0 && (rmin == 0 || a <= min))
{
min = a; // Оновлення мінімального значення
rmin = i; // Оновлення позиції мінімуму
}
}
// Виведення результату
if (rmin == 0) {
cout << "Net >0"; // Якщо не знайдено додатних чисел
} else {
cout << min << " " << rmin; // Вивід значення та позиції
}
return 0;
}
Детальне пояснення програми
Ця програма виконує наступні дії:
- Зчитує кількість чисел
n, які потрібно обробити
- Послідовно зчитує
n чисел з вхідних даних
- Знаходить найменше додатне число та його позицію у послідовності
- Виводить значення та позицію найменшого додатного числа або "Net >0", якщо додатних чисел немає
Ключові особливості:
a > 0 - перевірка, чи число додатне
rmin == 0 - умова для ініціалізації першого додатного числа
a <= min - умова для оновлення мінімального значення
- Програма ігнорує всі недодатні числа (нулі та від'ємні)
Тестування роботи програми
Тест 1 (знайдено додатні числа):
Вхідні дані:
6
-5 3 0 1 -2 2
Вихід:
1 4
Тест 2 (немає додатніх чисел):
Вхідні дані:
4
-1 0 -5 -3
Вихід:
Net >0
Варіанти задач
Варіант 1
- Ввести з клавіатури n будь-яких чисел. Знайти серед них максимальне.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше парне число. Якщо всі числа непарні, то вивести повідомлення.
Варіант 2
- Ввести з клавіатури n будь-яких чисел. Знайти серед них мінімальне.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найбільше від’ємне число. Якщо всі числа додатні, то вивести повідомлення.
Варіант 3
- Ввести з клавіатури n будь-яких чисел. Знайти максимальне та його порядковий номер. Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше парне число. Якщо є декілька таких чисел, то визначте порядковий номер першого такого числа. Якщо всі числа непарні, то вивести повідомлення.
Варіант 4
- Ввести з клавіатури n будь-яких чисел. Знайти мінімальне та його порядковий номер. Якщо є декілька таких чисел, то визначте порядковий номер першого такого числа.
- Ввести з клавіатури n будь-яких чисел. Знайдіть найбільше число серед непарних. Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа. Якщо всі числа парні, то вивести повідомлення.
Варіант 5
- Ввести з клавіатури n будь-яких чисел. Знайти максимальне та його порядковий номер. Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше число, яке кратне 3. Якщо є декілька таких чисел, то визначте порядковий номер першого такого числа. Якщо всі числа не кратні 3, то вивести повідомлення.
Варіант 6
- Ввести з клавіатури n будь-яких чисел. Знайти мінімальне та його порядковий номер. Якщо є декілька таких чисел, то визначте порядковий номер першого такого числа.
- Ввести з клавіатури n будь-яких чисел. Знайдіть найбільше число серед чисел, які кратні 5. Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа. Якщо всі числа не кратні 5, то вивести повідомлення.
Варіант 7
- Ввести з клавіатури n будь-яких чисел. Знайти максимальне та мінімальне числа.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше число, яке закінчується цифрою 1. Якщо є декілька таких чисел, то визначте порядковий номер першого такого числа. Якщо немає таких чисел, то вивести повідомлення.
Варіант 8
- Ввести з клавіатури n будь-яких чисел. Знайти різницю між максимальним та мінімальним числами.
- Ввести з клавіатури n будь-яких чисел. Знайдіть найбільше число серед чисел, які закінчуються цифрою 3. Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа. Якщо немає таких чисел, то вивести повідомлення.
Варіант 9
- Ввести з клавіатури n будь-яких чисел. Знайти суму максимального та мінімального чисел.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше двозначне число. Якщо є декілька таких чисел, то визначте порядковий номер першого такого числа. Якщо немає таких чисел, то вивести повідомлення.
Варіант 10
- Ввести з клавіатури n будь-яких чисел. Знайти середнє арифметичне максимального та мінімального чисел.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найбільше однозначне число. Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа. Якщо немає таких чисел, то вивести повідомлення.
Варіант 11
- Ввести з клавіатури n будь-яких чисел. З’ясувати, яке число введено пізніше, максимальне чи мінімальне?
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше тризначне число. Якщо є декілька таких чисел, то визначте порядковий номер першого такого числа. Якщо немає таких чисел, то вивести повідомлення.
Варіант 12
- Ввести з клавіатури n будь-яких чисел. З’ясувати, яке число введено раніше, максимальне чи мінімальне?
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найбільше двозначне число. Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа. Якщо немає таких чисел, то вивести повідомлення.
Варіант 13
- Ввести з клавіатури n будь-яких чисел. Знайти максимальне та мінімальне числа та їх порядкові номера. Якщо є декілька таких чисел, то визначте порядкові номера останніх.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше тризначне число, яке закінчується цифрою 0. Якщо є декілька таких чисел, то визначте порядковий номер першого такого числа. Якщо немає таких чисел, то вивести повідомлення.
Варіант 14
- Ввести з клавіатури n будь-яких чисел та число k. Знайдіть серед них число (його порядковий номер і значення) найдальше від k. Якщо таких чисел декілька, то знайдіть останнє.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найбільше двозначне число, яке починається на цифру 5. Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа. Якщо немає таких чисел, то вивести повідомлення.
Варіант 15
- Ввести з клавіатури n будь-яких чисел та число k. Знайдіть серед них число (його порядковий номер і значення) найдальше від k. Якщо таких чисел декілька, то знайдіть перше.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше парне тризначне число. Якщо є декілька таких чисел, то визначте порядковий номер останнього такого числа. Якщо немає таких чисел, то вивести повідомлення.
Варіант 16
- Ввести з клавіатури n будь-яких чисел та число k. Знайдіть серед них число (його порядковий номер і значення) найближче до k. Якщо таких чисел декілька, то знайдіть останнє.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше двозначне число та найбільше однозначне число. Якщо є декілька таких чисел, то визначте порядкові номери перших з них. Якщо немає таких чисел, то вивести повідомлення.
Варіант 17
- Ввести з клавіатури n будь-яких чисел та число k. Знайдіть серед них число (його порядковий номер і значення) найближче до k. Якщо таких чисел декілька, то знайдіть перше.
- Ввести з клавіатури n будь-яких чисел. Знайти серед них найменше тризначне число та найбільше двозначне число. Якщо є декілька таких чисел, то визначте порядкові номери останніх з них. Якщо немає таких чисел, то вивести повідомлення.
Назад
Зміст
Вперед