Оставить без изменений последовательность, если она упорядочена по не убыванию или по не возрастанию - C (СИ)
Формулировка задачи:
Ребят,я начинающая программистка) помогите решить задачу на С
Даны действительные числа a1, …, a30. Оставить без изменений последовательность a1, …, a30, если она упорядочена по не убыванию или по не возрастанию; в противоположном случае заменить нулями те члени, порядковые номера которых кратны четырем.
Решение задачи: «Оставить без изменений последовательность, если она упорядочена по не убыванию или по не возрастанию»
textual
Листинг программы
#include <iostream> #include <windows.h> using namespace std; int sign (int v) { //знак числа -1, 0 или 1 return (v<0 ? -1 : (v==0 ? 0 : 1)); } int main () { const int m=5; int a[m] = { 3, 2, 2, 2, 3 }; int i; bool uporota = true; int sign1=0, sign2=0; for (i=1; i<m-1; i++) { if (sign(a[i]-a[i-1])) sign1 = sign(a[i]-a[i-1]); if (sign(a[i+1]-a[i])) sign2 = sign(a[i+1]-a[i]); if (sign1!=0 && sign2!=0 && sign1!=sign2) { uporota = false; break; } } if (uporota) cout << "It Is Sorted!"; else { cout << "Cnanged: "; for (i=0; i<m; i++) { if (i>0 && i%4==0) //считаем, что 0 не кратен 4 a[i] = 0; cout << a[i] << " "; } } cout << endl; system("pause"); return 0; }
Объяснение кода листинга программы
Код выполняет следующие действия:
- В функции
main
создается массивa
размеромm=5
и инициализируется значениями {3, 2, 2, 2, 3}. - Переменная
i
инициализируется значением 1 и используется в циклеfor
, который выполняетсяm-1
раз. - В каждой итерации цикла выполняется проверка: если текущее значение
a[i]
больше предыдущего (a[i-1]
), то меняется знак переменнойsign1
. Если текущее значениеa[i+1]
больше предыдущего (a[i]
), то меняется знак переменнойsign2
. - Если значения
sign1
иsign2
не равны нулю и не равны друг другу, то это означает, что последовательность не является упорядоченной по возрастанию или убыванию, и переменнаяuporota
устанавливается в значениеfalse
. Цикл прерывается. - Если последовательность остается упорядоченной, то выводится сообщение
It Is Sorted!
. - Если последовательность не является упорядоченной, то выводится сообщение
Cnanged:
и значения массиваa
выводятся через пробел. - Программа ожидает нажатия клавиши для продолжения.
- Возвращается значение 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д