Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <locale.h>
- #include <stdlib.h>
- #define separators " \n\t"
- int count = 0;
- void main() {
- setlocale(LC_ALL, "Rus");
- printf("Программа печатает все слова, отличные от последнего слова. Для каждой гласной буквы указать сколько раз она встречается в полученном предложении..\nПрограмма печатает все слова, отличные от последнего слова в таком порядке, чтобы последняя буква каждого слова совпадала с первой буквой следующего слова.");
- printf("\n\nВведите строку(не более 100 символов):\n");
- char* currentWord;
- char* lastWord = NULL;
- char c;
- int numberOfDifferentWords = 0;
- char sentance[100];
- gets_s(sentance, 100);
- char words[50][50];
- int wordsAmount = 0;
- char tempWord[50];
- char vowels[6] = { 'a', 'e', 'i', 'o', 'u', 'y' };
- int x = 0, y = 0;
- for (int i = 0; i <= strlen(sentance); i++) {
- if (sentance[i] != '\0') {
- if (sentance[i] != ' ') {
- words[x][y] = sentance[i];
- y++;
- }
- else {
- if (y > 0) {
- words[x][y] = '\0';
- y = 0;
- x++;
- wordsAmount++;
- }
- }
- }
- else {
- if (y > 0) {
- words[x][y] = '\0';
- }
- else
- x--;
- wordsAmount--;
- }
- }
- char flag = 1;
- for (int i = 0; i <= x; i++) {
- int j = 0;
- flag = 1;
- while (flag && words[i][j] != '\0') {
- if (!(words[i][j] >= 65 && words[i][j] <= 90) && !(words[i][j] >= 97 && words[i][j] <= 122))
- flag = 0;
- j++;
- }
- if (!flag) {
- printf("%s - недопустимая комбинация символов\n", words[i]);
- for (int z = i; z < x; z++)
- strcpy_s(words[z], words[z + 1]);
- x--;
- i--;
- }
- }
- lastWord = words[x];
- printf("Все слова, отличные от последнего:\n");
- for (int j = 0; j < x; j++) {
- if (strcmp(lastWord, words[j]) != 0) {
- numberOfDifferentWords++;
- printf(" %s", words[j]);
- }
- }
- if (numberOfDifferentWords == 0) {
- printf("\tНет слов, отличных от последнего.\n\n");
- }
- // strcpy(words[x], "");
- if (numberOfDifferentWords != 0) {
- for (int k = 0; k < 6; k++) {
- count = 0;
- for (int i = 0; i < x; i++) {
- for (int j = 0; i > -1 && j < strlen(words[i]); j++) {
- if (vowels[k] == words[i][j]) {
- count++;
- }
- }
- }
- printf("\n\t\tБуква %c встречается %d раз", vowels[k], count);
- }
- }
- for (int i = 0; i < x - 1; i++) {
- for (int j = i + 1; j < x; j++) {
- if (words[i][strlen(words[i]) - 1] == words[j][0]) {
- strcpy(tempWord, words[j]);
- strcpy(words[j], words[i + 1]);
- strcpy(words[i + 1], tempWord);
- }
- if (words[i][0] == words[j][strlen(words[j]) - 1]) {
- strcpy(tempWord, words[i + 1]);
- strcpy(words[i + 1], words[i]);
- strcpy(words[i], words[j]);
- strcpy(words[j], tempWord);
- }
- }
- }
- if (numberOfDifferentWords != 0) {
- printf("\n\tНовая строка\n\n");
- for (int j = 0; j < x; j++) {
- printf(" %s", words[j]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement