Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Ошибка в коде сортировки


Автор: n199a 28.5.2013, 17:12
В коде ошибка, а именно в SortStrings. Как увязать функции SortStrings() и main()?
Ошибка:
Код

5 :expected constructor, destructor, or type conversion before "void" 


Код

#include <stdio.h>
#include <conio.h>
main()

void SortStrings (char *str[], int n)    // *s[] - массив указателей         //ВЫДЕЛЯЕТСЯ ЭТА СТРОКА ПРИ ОШИБКЕ
{                                        // n - число строк
char *p;
int i, j;
for (i = 0; i < n-1; i++)
    for (j = n-1; j > i; j--)
        if (strcmp(str[j-1],str[j]) > 0) {
           p = str[j]; str[j] = str[j-1]; 
           str[j-1] = p;               // меняем
           }
}

{
char str[4][10];    // 4 строки длинной 10 символов каждая
char *ps[4];     // массив из 4 указателей на строки
int count = 0;
/*Ввод букв в строки*/
printf("Введите буквы:\n");
for (int i = 0; i < 3; i++) {
  gets (str[count]);             // прочитать строку из клавиатуры
  if (str[count][0] == '\0')     // если пустая строка, ...
    break;                     // то досрочный выход из цикла
  count++;
  }
/* Вывод на экран введенных букв по строкам */
printf("\n");
for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 10; j++) {
    printf("%c", str[i][j]);
    }
    printf("\n");
    }
/* Сортировка по алфавиту */
for (int i = 0; i < count; i++)     // расставить указатели
    ps[i] = str[i];
SortStrings(ps, count);             // сортировать указатели
for (int i = 0; i < count; i++)
    puts(ps[i]);
    
getch();
}



Добавлено @ 17:17
Все, решил  smile Затупил.

Код

#include <stdio.h>
#include <conio.h>
#include <string.h>

void SortStrings (char *str[], int n)    // *s[] - массив указателей         //ВЫДЕЛЯЕТСЯ ЭТА СТРОКА ПРИ ОШИБКЕ
{                                        // n - число строк
char *p;
int i, j;
for (i = 0; i < n-1; i++)
    for (j = n-1; j > i; j--)
        if (strcmp(str[j-1],str[j]) > 0) {
           p = str[j]; str[j] = str[j-1]; 
           str[j-1] = p;               // меняем
           }
}

main()
{
char str[4][10];    // 4 строки длинной 10 символов каждая
char *ps[4];     // массив из 4 указателей на строки
int count = 0;
/*Ввод букв в строки*/
printf("Введите буквы:\n");
for (int i = 0; i < 3; i++) {
  gets (str[count]);             // прочитать строку из клавиатуры
  if (str[count][0] == '\0')     // если пустая строка, ...
    break;                     // то досрочный выход из цикла
  count++;
  }
/* Вывод на экран введенных букв по строкам */
printf("\n");
for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 10; j++) {
    printf("%c", str[i][j]);
    }
    printf("\n");
    }
/* Сортировка по алфавиту */
for (int i = 0; i < count; i++)     // расставить указатели
    ps[i] = str[i];
SortStrings(ps, count);             // сортировать указатели
for (int i = 0; i < count; i++)
    puts(ps[i]);
    
getch();
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)