Сортировка фамилий по алфавиту через массив указателей - C (СИ)

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

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

Здравствуйте! голову сломал, перекопал этот форум но все никак не получается построить нормально работающую прогу, даны два массива, в одной фамилии, в другой возраста, нужно фамилии отсортировать по алфавиту через массив указателей, но так, чтобы соответствие между фамилией и возрастом не пропадало, подскажите пожалуйста как

Решение задачи: «Сортировка фамилий по алфавиту через массив указателей»

textual
Листинг программы
#include <iostream>
#include <conio.h>
 
int main()
{   int i,j;
    char words[8][128] = {"Ivanov, Ivan", "Petrov, Petr", "Sidorov, Ivan", "Aladov, Dima", "Pavlov, Pavel", "Katov, Sasha", "Balonov, Vova", "Maslov, Zheka"};
    int ages[8] = {18, 15, 20, 22, 34, 32, 21, 12};               
 
    for(i=0;i<7;i++)
        for(j=i+1;j<8;j++)
            if(strcmp(words[i],words[j])>0)
            {   char cur[64];
                strcpy(cur,words[i]);
                strcpy(words[i],words[j]);
                strcpy(words[j],cur);
            }
    printf("Results:\n");
    for(i=0;i<8;i++)
        printf("%s\n", words[i]);
        printf("\n");
    
   getch();
    return 0;
}

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

В этом коде используется сортировка выбором для сортировки массива строк. Список действий:

  1. Создается массив строк words[8][128] и массив целых чисел ages[8].
  2. В цикле for проходят по всем элементам массива words[8][128].
  3. В каждой итерации внутреннего цикла сравнивают текущую строку с каждой последующей строкой. Если текущая строка больше следующей по алфавиту, то они меняются местами.
  4. Создается временная строка cur[64].
  5. Если текущая строка больше следующей, то в cur[64] копируется значение текущей строки, затем значения текущей и следующей строк меняются местами.
  6. В цикле for проходят по всем элементам массива words[8][128] и выводят каждый элемент на экран.
  7. В конце программы используется функция getch() для приостановки выполнения программы до нажатия клавиши.
  8. Возвращается 0, что означает успешное выполнение программы.

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


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

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

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