Одномерный массив. Переписать эл-ты между 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д