Вывести в порядке убывания те члены последовательности, которые не находятся между 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]);
}
}

Объяснение кода листинга программы

Код выполняет следующие действия:

  1. Инициализирует массив a и переменные min и max значениями первого элемента массива.
  2. Находит индексы минимального и максимального элементов массива a.
  3. Создает новый массив b, который будет содержать элементы, не являющиеся минимальными или максимальными.
  4. Заполняет массив b элементами, удовлетворяющими условию.
  5. Сортирует массив b в порядке возрастания.
  6. Выводит отсортированный массив b. Однако, код содержит ошибки и не полностью соответствует постановке задачи.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы