Описать процедуру 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]);    
     }

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

  1. Включаем необходимые заголовочные файлы
  2. Задаем размер массива N = 5
  3. Инициализируем массив a[N] и индексный массив ind[N]
  4. Сортируем массив a[N] методом пузырька
  5. Выводим отсортированный массив ind[N]

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


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

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

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