Программа не выводит ответ - C (СИ) (151461)
Формулировка задачи:
программа не выводит ответ, после ввода "." и нажатия на ентер
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <locale> #include <conio.h> int main() { setlocale(LC_ALL, "Russian"); // русский шрифт в консоли char A[30][8]; // массив слов const char CAlpha[] = "BCDFGHJKLMNPQRSTVWXZ"; // массив символов являющихся согласными int i = 0; // переменная цикла int n = 30; // максимально возможное кол-во слов printf("Введите последовательность слов:\n"); do { scanf_s("%s", A[i]); // в цикле считываем по словам i++; } while (i - 1>n || A[i - 1][strlen(A[i - 1]) - 1] != '.'); // пока кол-во слов не достигнет 30 или точка не будет последним символом слова A[i - 1][strlen(A[i - 1]) - 1] = '\0'; //удаляем точку и не учитываем последнее слово, т.к.оно кончается точкой n = i - 1; // сохраняем в n фактическое кол-во слов for (i = 0; i<n; i++) // в цикле по словам { if (strchr(CAlpha, toupper(A[i][0])) && // ищет вхождение первого символа слова в массив CAlpha strchr(CAlpha, toupper(A[i][strlen(A[i]) - 1]))) // ищет вхождение последнего символа слова в массив CAlpha { printf("-> %s\n", A[i]); // если слово удовлетворяет условиям выше, выводим его на экран } } _getch(); return 0; }
Решение задачи: «Программа не выводит ответ»
textual
Листинг программы
for (;;) { scanf_s("%s", A[i]); // вводим очередное слово if (A[i][strlen(A[i])-1] == '.' ) { ++i; break; } // выходим если на конце слова . if (++i >= n) break; // выходим, если кол-во слов превысило либо равно n }
Объяснение кода листинга программы
- Объявлен цикл
for (;;)
, то есть программа будет выполняться бесконечно, пока не будет прервана. - В каждой итерации цикла программа запрашивает у пользователя ввод строки с помощью функции scanf_s и сохраняет ее в массиве A[i].
- Проверяется, является ли последний символ введенной строки точкой ('.'). Если да, то переменная i увеличивается на 1, чтобы пропустить точку при обработке строки, и цикл продолжается. Если нет, то цикл завершается.
- Если количество введенных слов превышает или равно n, то цикл также завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д