Advertisement
DanikKUL

Сортировка фамилий в указателе на указатель

Jan 20th, 2022
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.33 KB | None | 0 0
  1. // дан массив строк в одной строке одна фамилия отсортировать в алфавитном порядке
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. void sort(char **mas, int amount){
  7.     if(!mas){
  8.         printf("ERROR\n");
  9.         return;
  10.     }
  11.     int letter = 0;
  12.     for (int i = 1; i < amount + 1; ++i) {
  13.         for (int j = i + 1; j < amount + 1; ++j) {
  14.             char *str;
  15.             if(mas[i][letter] == mas[j][letter]){
  16.                 while(mas[i][letter] != mas[j][letter]) letter++;
  17.             }
  18.             if(mas[i][letter] > mas[j][letter]){
  19.                 str = mas[i];
  20.                 mas[i] = mas[j];
  21.                 mas[j] = str;
  22.             }
  23.             letter = 0;
  24.         }
  25.     }
  26.     printf("\n");
  27. }
  28.  
  29. int main(){
  30.     printf("Введите количество фамилий\n");
  31.     int amount = 0;
  32.     while(!scanf("%d", &amount)){
  33.         printf("ERROR\n");
  34.         fflush(stdin);
  35.     }
  36.     char **mas = (char**) calloc (amount + 1, sizeof(char*));
  37.     for (int i = 0; i < amount + 1; ++i) {
  38.         mas[i] = (char*) calloc (20, sizeof(char));
  39.         gets(mas[i]);
  40.     }
  41.     for (int i = 0; i < amount + 1; ++i) {
  42.         puts(mas[i]);
  43.     }
  44.     sort(mas, amount);
  45.     for (int i = 0; i < amount + 1; ++i) {
  46.         puts(mas[i]);
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement