Сортировка В Алфавитном Порядке

Тема в разделе "C/C++/C#", создана пользователем Creder, 18 дек 2013.

  1. Creder

    Creder New Member

    Регистрация:
    18 дек 2013
    Сообщения:
    1
    Симпатии:
    0
    В общем задание такое. Перемещая указатель, рассортировать введенный с клавиатуры массив строк в алфавитном порядке. Ввод, сортировку и вывод массива выполнить в отдельных функциях. Стандартные функции работы со строками не использовать.
    Вот код, но он не работает. Объясните,пожалуйста, что я сделал не так.
    Код (Text):
    #include <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    #include <locale.h>
    #define N 100
    #define M 30

    void vvod(int n, int i, char a[i]);
    void sor(int n, int i, char a[i]);
    void print(int n, int i, char a[i]);

    int main(int argc, char* argv[])/*Главная функция*/
    {
    char a[N][M];
    int n, i;

    setlocale(LC_ALL,".1251");
    printf("Введите количество слов: ");
    scanf("%d", &n);

    printf("Введите слова: ");
    vvod(n, i, a[i]);/*Функция ввода*/
    sor(n, i, a[i]);/*Функция сортировки*/
    print(n, i, a[i]);/*Функция вывода*/

    return 0;
    }

    void vvod(int n, int i, char a[i])/*Функция ввода*/
    {
    for (i=0; i<n-1; i++)
    scanf("%s", &a[i]);
    return vvod( n, i, a[i]);
    }


    void sor(int n, int i, char a[i])/*Функция сортировки*/
    {
    for(i = 0; i < n; i++) {
    for(int j = 0; j < n - i - 1; j++) {
    if(a[j] > a[j+1]) {
    int tmp = a[j];
    a[j] = a[j+1];
    a[j+1] = tmp;
    }
    }
    }
    return sor(n, i, a[i]);
    }
    void print(int n, int i, char a[i])/*Функция вывода*/
    {
    for (i=0; i<n; i++)
    printf("%s\n", a[i]);
    return print(n, i, a[i]);
    }
    Да, знаю, задание бредовое, но какое дали такое дали.
     
Загрузка...

Поделиться этой страницей