Программа Bubble sort C - PullRequest
       1

Программа Bubble sort C

1 голос
/ 16 апреля 2011

Напишите функцию, которая при вызове как bubble_string (s) заставляет символы в строке s сортироваться по пузырьку. Если s содержит строку «ксилофон», то следующее утверждение должно привести к печати ehlnoopxy. Я получаю следующие ошибки: 10.4.c: В функции main': 10.4.c:3: warning: data definition has no type or storage class 10.4.c: In function main ': 10.4.c: 8: ошибка: синтаксическая ошибка перед "char" 10.4.c: В функции `bubble_string ': 10.4.c: 17: ошибка: синтаксическая ошибка перед символом ')' 10.4.c: 18: ошибка: синтаксическая ошибка перед символом ')'

Есть идеи как это исправить?

обновлен

Код:

#include <stdio.h>
void swap (char*, char*);
bubble_string(char s[]);

int main(void)
{
    char *s= "xylophone";
    printf("%s", bubble_string(char *s));

    return 0;
}

bubble_string(char s[])
{
    char i, j, n;
    n  = strlen(s);
    for(i = 0; i < n - 1; ++i)
            for(j = n - 1; j > 0; --j)
                    if(s[j-1] > s[j])
                            swap(&s[j-1], &s[j]);
}

Ответы [ 3 ]

1 голос
/ 16 апреля 2011

Среди других проблем вы заявляете, что bubble_string не возвращает значение (давая ему тип возврата void), затем вы продолжаете использовать его в операторе printf, как если бы оно возвращало значение.(По крайней мере, так выглядело до редактирования ... так, как у вас сейчас, по умолчанию будет возвращаться int, но вы используете его, как если бы это была строка, и вы на самом деле ничего не возвращаете из bubble_string.)

Кроме того, ваш синтаксис цикла for отключен.Внешний цикл, вероятно, должен быть больше похож на:

for(i=0; i < n-1; i++) {/* et cetera */}

0 голосов
/ 16 апреля 2011

Ваша функция bubble_string () должна возвращать символ *, если вы используете его в printf ().

0 голосов
/ 16 апреля 2011

Ваша функция bubble_string должна возвращать символ *. В противном случае он возвращает vid в printf, что вызывает вашу ошибку (потому что printf ожидает символ *).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...