Стоит перед до мной такая задача. Необходимо написать программу, которая читает слова по одному за раз, пока не будет введена буква q. После этого программа должна сообщить, количество слов, начинающихся с гласных, количество слов, начинающихся с согласных и количество слов, которые начинаются с других символов (например с цифр). Так вот, при запуске данной программы, программа считает только первое слово, а остальные слова просто напросто игнорируются, насколько я понимаю. Хотелось разобраться в чем ошибка, как правильно организовать цикл, чтобы все правильно работало. Заранее благодарен.
| Код | // S_305_7.cpp : Defines the entry point for the console application. //
#include "stdafx.h" #include <iostream> #include <locale> #include <conio.h> #include <cctype> using namespace std;
int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_CTYPE,".1251"); setlocale(LC_MONETARY,".1251");
char word[50]; int glas = 0; int soglas = 0; int drugie = 0; cout << "Вводите слова (q для выхода.)"; cin.getline(word, 50); for (int i = 0; i < strlen(word); i++) { while (word[i] != 'q') { if (isalpha (word[i])) { if (word[i] =='a' || word[i] == 'e' || word[i] == 'i' || word[i] == 'j' || word[i] == 'o' || word[i] == 'u') { glas++; break; } else { soglas++; break; } } else drugie++; } cin.getline(word, 20); } cout << glas << " слов начинается с гласных.\n"; cout << soglas << " слов начинается с согласных.\n"; cout << drugie << " остальных." ;
getch(); return 0; }
|
|