Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // дан массив строк в одной строке одна фамилия отсортировать в алфавитном порядке
- #include <stdio.h>
- #include <stdlib.h>
- void sort(char **mas, int amount){
- if(!mas){
- printf("ERROR\n");
- return;
- }
- int letter = 0;
- for (int i = 1; i < amount + 1; ++i) {
- for (int j = i + 1; j < amount + 1; ++j) {
- char *str;
- if(mas[i][letter] == mas[j][letter]){
- while(mas[i][letter] != mas[j][letter]) letter++;
- }
- if(mas[i][letter] > mas[j][letter]){
- str = mas[i];
- mas[i] = mas[j];
- mas[j] = str;
- }
- letter = 0;
- }
- }
- printf("\n");
- }
- int main(){
- printf("Введите количество фамилий\n");
- int amount = 0;
- while(!scanf("%d", &amount)){
- printf("ERROR\n");
- fflush(stdin);
- }
- char **mas = (char**) calloc (amount + 1, sizeof(char*));
- for (int i = 0; i < amount + 1; ++i) {
- mas[i] = (char*) calloc (20, sizeof(char));
- gets(mas[i]);
- }
- for (int i = 0; i < amount + 1; ++i) {
- puts(mas[i]);
- }
- sort(mas, amount);
- for (int i = 0; i < amount + 1; ++i) {
- puts(mas[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement