Одномерный массив. Переписать эл-ты между max&min. - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Помогите справиться с заданием на Си.

Задание:

Дан одномерный массив А, состоящий из N элементов. Переписать в одномерный массив B все элементы, заключенные между максимальным и минимальным значениями.

Компилятор выдает ошибку "error C2181: illegal else without matching if" в строке 26.
#include "stdafx.h"

int main()
{
    int A[50], B[50];
    int max, min, i, L, T, La, Lb, k;
printf ("Enter elements of array");
for (i=0;i<50;i++)
//препод-ль сказал, что массив нужно считать через цикл,  таким образом?
{
scanf("%d",&A);
} 
max=A[0];
min=max;
k=0;
for (i=1;i<50;i++)
{
    if (max<=A[i])
        max=A[i];L=i;
    if (min>=A[i])
        min=A[i]; T=i;
}
if (L>T)
    La=L; Lb=T;
else La=T; Lb=L;
 
for (i=La; i<Lb;i++)
{
    B[k]=A[i];
    k=k+1;
}
printf ("%d", B[k]);
}

Решение задачи: «Одномерный массив. Переписать эл-ты между max&min.»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
 
#define SIZE 5
#define SWAP(a, b) a ^= b; b = a ^ b; a ^= b;
 
int main(){
  int A[SIZE], B[SIZE];
  size_t i, i_mx = 0, i_mn = 0;
  for(i = 0; i < SIZE; ++i){
    printf("A[%d] = ", i);
    scanf("%d", &A[i]);
  }
  for(size_t i = 0; i < SIZE; ++i){
    if(A[i] > A[i_mx])
      i_mx = i;
    else if(A[i] < A[i_mn])
      i_mn = i;
  }
  if(i_mx > i_mn){
    SWAP(i_mx, i_mn);
  }
  else
    for(i = i_mx + 1; i < i_mn; ++i)
      printf("%d ", (B[i] = A[i]));
  getch();
  return 0;
}

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


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

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

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