Я хочу иметь основную программу, которая читает 10 имен, используя scanf
(максимум 100 символов), сохраняет их в двумерный массив (char[10][100]
), а затем вызывает функцию, которая имеет алгоритм сортировки пузырьков и сортирует2D массив.И, наконец, я хочу, чтобы основная программа напечатала отсортированный 2D-массив.
Прототип функции:
void bubble_sort(str[][100]);
Кто-нибудь может показать мне код?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 10
void bubble_sort(char str[SIZE][100]);
int main (void) {
char names[SIZE][100];
int i, j;
for (i = 0; i < SIZE; i++) {
printf("Enter names: ");
scanf("%s", names[i]);
}
bubble_sort(names);
for (int i = 0; i < SIZE; i++)
printf ("%s\n", names[i]);
}
void bubble_sort(char str[SIZE][100]) {
int i, j, reorder = 0;
char temp;
for (i = 1; i < SIZE; i++) {
for (j = SIZE - 1; j >= i; j--) {
if (strcmp(str[j], str[j + 1]) > 0) {
strcpy(temp, str[j + 1]);
strcpy(str[j + 1], str[j]);
strcpy(str[j], temp);
reorder = 1;
}
}
if (reorder == 0)
return;
}
}
Я ожидаю набрать 10 имен, а затем получить в качестве вывода эти 10 имен в алфавитном порядке по возрастанию.