Распечатать введенные слова группами, каждая из которых должна состоять из слов, три первых буквы которых совпадают - C (СИ)
Формулировка задачи:
Задача: "Ввести последовательность не связанных слов. Распечатать введенные слова группами, каждая из которых должна состоять из слов, три первых буквы которых совпадают." Си начал учить недавно, очень мало опыта работы с символьными строками. То что пришло в голову:Подскажите пожалуйста идеи хотя бы... Пробовал еще через getchar() посимвольно заносить но там очень все запутано выходит.
int main(void) { int n, k,i=0,t=0; scanf("%d",&n); //Количество слов scanf("%d",&k); //Максимальное количество букв в слове. char cat[n][k+1]; //Создания массива в который будут записываться слова while(i<=n){ //Цикл ввода gets(cat[i]); i++; } char cat1[n][3]; //Здесь хотел создать массив в который входят первые три буквы каждого слова for(int p=0;p\n%s",cat[0][0]);//Но почему то даже простой вывод первого элемента начального массива не работает... for(int j=0;j<=n;j++){ //Но слова полностью выводит. printf("\n%s",cat[j]); } }
Решение задачи: «Распечатать введенные слова группами, каждая из которых должна состоять из слов, три первых буквы которых совпадают»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <locale.h> int main (void) { setlocale(LC_ALL, "Rus"); const int a = 32; // максимальная длина слова int i, k, n; printf("Количество слов?: "); scanf("%d", &n); if (n < 1) return -1; char words[n][a]; // список слов char c[3]; // первые буквы слова printf("Введите слова:\n"); for (i=0; i<n; i++) // i < n, а не <= n scanf("%32s", words[i]); // ограничиваем длину слова 32 символами printf("Результат сортировки за первыми 3-мя буквами:\n"); for (i=0; i<n; i++) { if (words[i][0] != 0) // не просматриваем уже проверенные { strncpy(c, words[i], 3); // запоминаем первые буквы слова for (k=i; k<n; k++) // печатаем с i-го слова, а не с самого начала { if (! strncmp(c, words[k],3)) // if (strncmp(c, words[k],3) == 0) { printf("%s\n", words[k]); words[k][0] = 0; } } printf("\n"); } } return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д