Не работает программа, не могу найти ошибку - C (СИ)
Формулировка задачи:
Дан одномерный массив А неупорядоченных целых чисел. Назовем инверсией два стоящих рядом элемента, когда левый элемент больше правого. Из каждой инверсии переписать в массив В меньший элемент. Вывести массив В на экран или выдать сообщение «Массив В пуст».
#include<stdio.h> #include<stdlib.h> #include<locale.h> #define N 6 int main (void) { setlocale(LC_ALL, "rus"); int B[N], A[N]={5,6,2,4,9,3}; int k=0,temp,i; for (i=0;i<N;i++) { if (A[i]>A[i+1]) { temp=A[i]; A[i]=A[i+1]; A[i+1]=temp; B[i]=A[i+1]; } else B[i]=A[i+1]; } if (B[i]==0) printf("Массив пуст\n"); else printf("%d\n",B[i]); system("pause"); return 0; }
Решение задачи: «Не работает программа, не могу найти ошибку»
textual
Листинг программы
#include<stdio.h> #include<stdlib.h> #include<locale.h> #define N 6 int main (void) { setlocale(LC_ALL, "rus"); int B[N], A[N]={5,6,2,4,9,3}; int k=0,i; for (i=1;i<N;i++) if (A[i-1]>A[i]) B[k++]=A[i]; if (k==0) printf("Массив пуст\n"); else for (i=0;i<k;i++) printf("%d\n",B[i]); system("pause"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы программы: stdlib.h, printf.h, locale.h.
- Установка значения N равным 6, это количество элементов в массиве A.
- Инициализация массива A значениями 5,6,2,4,9,3.
- Установка значения k равным 0, это счетчик для заполнения массива B.
- Установка значения i равным 1, это счётчик для цикла for.
- Проверка условия для цикла for, если A[i-1] больше A[i], то выполняется обмен элементов и увеличивается значение k.
- Если значение k равно нулю, то выводится сообщение о пустоте массива B.
- В противном случае, выводятся все элементы массива B с помощью цикла for.
- Конец программы с помощью команды system(
pause
). - Возвращение значения 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д