Сортировка слов по длине первого слова - C (СИ)
Формулировка задачи:
Хотелось бы понять, почему в нижнем цикле я ставлю || != '\n' вместо && != '\n' то проиходит ошибка сегментации в случае, когда строка состоит из символа и конца строки без пробелов. Правильно ли я понимаю, что в этом случае первое условие будет всегда выполняться и цикл будет бесконечным? Хотелось бы также узнать, есть ли менее сложные по времени алгоритмы.
void word_sort(char **a, int lim, int char_lim) { int i, j, l, k; char *pt1; char *pt2; char * temp = (char*)malloc(char_lim * sizeof(char)); for(i = 0; i < lim; ++i) { for(j = lim - 1; j > i; --j) { for(l = 0; a[j][l] != ' ' && a[j][l] != '\n'; ++l) { continue; } for(k = 0; a[j-1][k] != ' ' && a[j-1][k] != '\n'; ++k) { continue; } printf("%d %d\n", l, k); if(k > l) { strcpy(temp, a[j]); strcpy(a[j],a[j-1]); strcpy(a[j-1], temp); } l = k = 0; } } }
Решение задачи: «Сортировка слов по длине первого слова»
textual
Листинг программы
a[j-1][k] != ' ' && a[j-1][k] != '\n'
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д