Вывести в порядке убывания те члены последовательности, которые не находятся между min и max членами - C (СИ)
Формулировка задачи:
Данный код выводит элементы в неупорядоченном виде,но что то мне подсказывает что код так себе))
Условие: Дана последовательность целых чисел, все элементы которой различны. Вывести в порядке убывания те члены последовательности, которые не находятся между минимальным и максимальным.
#include <conio.h> #include <stdio.h> #define SIZE 10 void main() { int a[SIZE] = {5443, -2, 5, 359, 3, 6, -74, 83423, 98, -4}; int max,min,i,indmin,indmax,k=0,j=0,minPosition,tmp; int b[8]; indmin=0; indmax=0; min = a[0]; for (i = 0; i<SIZE; i++) { if (a[i] < min) { min = a[i]; indmin=i; } } max = a[0]; for (i = 0; i<SIZE; i++) { if (a[i] > max) { max = a[i]; indmax=i; } } k=-1; for (i = 0; i<SIZE; i++) {if(((i<indmin)||(i>indmax))&&((i>indmin)||(i<indmax))){ k++; b[k]=a[i]; j++; printf("k= %d\n", k); printf("b[b]= %d\n", b[k]);} ; } for(k=0;k<j;k++) { printf("%d ",b[k]); } printf("indmin %d\n",indmin); printf("indmax %d\n",indmax); printf("max element is %d\n", max); printf("min element is %d\n", min); getch(); }
Решение задачи: «Вывести в порядке убывания те члены последовательности, которые не находятся между min и max членами»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> #define SIZE 10 void main() { int a[SIZE] = {1, -1, 5, -7, 6, 31, -74, 83, 9,-10 }; int max,min,i,indmin,indmax,k,j,tmp; int b[SIZE-2]; k=0;j=0; indmin=0; min = a[0]; indmax=0; for ( i = 0; i<SIZE; i++){ if (a[i] < min) { min = a[i]; indmin=i; } } max = a[0]; for (i = 0; i<SIZE; i++) { if (a[i] > max) { max = a[i]; indmax=i; } } k=-1; for (i = 0; i<SIZE; i++) {if(((i<indmin)||(i>indmax))&&((i>indmin)||(i<indmax))){ k++; b[k]=a[i]; j++; printf("k= %d\n", k); printf("b[b]= %d\n", b[k]);} ; } for (i=1;i<k;i++) { tmp=b[i]; for(j=i-1; j>=0 && tmp>b[j]; j--) b[j+1]=b[j]; b[j+1]=tmp; } if(k<0){ printf("Ydovletvoriaushih chisel net\n"); exit(1);} printf("Posledovatelnost:"); for(k=0;k-1<i;k++) { printf("%d, ",b[k]); } }
Объяснение кода листинга программы
Код выполняет следующие действия:
- Инициализирует массив a и переменные min и max значениями первого элемента массива.
- Находит индексы минимального и максимального элементов массива a.
- Создает новый массив b, который будет содержать элементы, не являющиеся минимальными или максимальными.
- Заполняет массив b элементами, удовлетворяющими условию.
- Сортирует массив b в порядке возрастания.
- Выводит отсортированный массив b. Однако, код содержит ошибки и не полностью соответствует постановке задачи.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д