Выяснить сколько из вводимых чисел не превышает число, введенное перед ним - C (СИ)
Формулировка задачи:
Добрый день,помогите пожалуйста с задачей для начинающих.
Ввести N чисел: х1,х2...хn , (N больше либо равно 3). Выяснить сколько из вводимых чисел не превышает
число, введенное перед ним (xk < xk-1).
Спасибо.
Решение задачи: «Выяснить сколько из вводимых чисел не превышает число, введенное перед ним»
textual
Листинг программы
#include <stdio.h>
int main() {
unsigned cnt = 0, n;
int a, b;
if ((scanf("%u", &n) != 1) || (n < 3)) {
return 1;
}
if (scanf("%d", &a) == 1) {
while ((--n) && (scanf("%d", &b) == 1)) {
cnt += b < a;
a = b;
}
}
printf("cnt = %u\n", cnt);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Переменная
cntинициализируется значением 0 и используется для подсчета количества чисел, которые меньше текущего числа. - Переменная
nинициализируется значением, которое вводится с клавиатуры, и используется как верхний предел для цикла. - Переменная
aинициализируется значением, которое вводится с клавиатуры, и используется как первое число для сравнения. - Пока
nбольше 0, вводится следующее числоbс клавиатуры, и если оно меньшеa, то переменнаяcntувеличивается на 1. - После каждой итерации
aзаменяется наb. - Когда
nстановится равным 0, программа выводит значениеcnt. Пояснение по коду: - Если пользователь вводит число меньше 3, программа завершается с сообщением об ошибке.
- Если пользователь вводит что-то, что не является числом, программа завершается с сообщением об ошибке.
- Если пользователь вводит ноль или отрицательное число, программа завершается с сообщением об ошибке.
- Если пользователь вводит число, которое больше максимального значения, которое может хранить переменная
cnt, программа завершается с сообщением об ошибке. - Если пользователь вводит числа в неправильном формате (например, буквы или символы), программа завершается с сообщением об ошибке.