Описать процедуру SortIndex(A, N, I), формирующую для вещественного массива A размера N индексный массив I - C (СИ)
Формулировка задачи:
Прошу помощи в решении задачи.
Описать процедуру SortIndex(A, N, I), формирующую для вещественного массива A размера N индексный массив I — массив целых чисел того же размера, содержащий номера элементов массива A в том порядке, который соответствует возрастанию элементов массива A (сам массив A при этом не изменяется). Индексный массив I является выходным параметром. С помощью этой процедуры создать индексные массивы для массивов A, B, C размера NA, NB, NC соответственно.
Решение задачи: «Описать процедуру SortIndex(A, N, I), формирующую для вещественного массива A размера N индексный массив I»
textual
Листинг программы
#include <stdio.h> #include <math.h> int main () { void SortIndex(float *, int , int *); int N=5, i, ind[N], lamp, j; float a[N]; for(i=0;i<N;i++) { printf("a[%d]=",i); scanf("%f", &a[i]); } for(i=0; i<N; i++) printf("%5.1f", a[i]); SortIndex(a, N, ind); puts("\n"); for(i=0; i<N; i++) printf("%5d", ind[i]); getchar(); getchar (); return 0; } void SortIndex(float *a, int N, int *ind) { int i, j, t; float b[N], temp; for(i=0; i<N; i++) b[i]=a[i]; for(i=0; i<N; i++) ind[i]=i; puts("\n"); for(i=0; i<N; i++) printf("%5d", ind[i]); for(j=0; j<N-1; j++) for(i=0; i<N-1; i++) { if(b[i]>b[i+1]) { temp=b[i]; b[i]=b[i+1]; b[i+1]=temp; t=ind[i]; ind[i]=ind[i+1]; ind[i+1]=t; } } puts("\n"); for(i=0; i<N; i++) printf("%5d", ind[i]); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Задаем размер массива N = 5
- Инициализируем массив a[N] и индексный массив ind[N]
- Сортируем массив a[N] методом пузырька
- Выводим отсортированный массив ind[N]
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д