Форум программистов, компьютерный форум CyberForum.ru

Проверить код - C++

Восстановить пароль Регистрация
 
Reyzel
2 / 2 / 0
Регистрация: 21.10.2012
Сообщений: 45
22.11.2013, 16:43     Проверить код #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cctype>
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::string word;
    int glasnie = 0;
    int soglasnie = 0;
    int other = 0;
    std::cout << "Enter words (q to quit) : " << std::endl;
    while ( std::cin >> word)
    {
        if ( word == "q")
            break;
        if (isalpha(word[0]))
        {
        
            if (word[0] == 'a' || 'A' || 'e' || 'E' || 'i' || 'I' || 'o' || 'O' || 'u' || 'U')
                ++glasnie;
              else if (word [0] == 'B' || 'C' || 'D' || 'F' || 'G' || 'H' || 'J' || 'K' || 'L' || 'M' || 'N' || 'P'|| 'Q' || 'R' || 'S' || 'T' || 'V' || 'W' || 'X' || 'Y' || 'Z' ||
                                 'b' || 'c' || 'd' || 'f' || 'g' ||'h' ||  'j' || 'k' || 'l' || 'm' || 'n' || 'p'|| 'q' || 'r' || 's' || 't' || 'v' || 'w' || 'x' || 'y' || 'z')
                ++soglasnie;
        }
        if (!isalpha(word[0]))
            ++other;
        
}
    std::cout << glasnie << " words beginning with glasnie" << std::endl;
    std::cout << soglasnie << " words beginning with soglasnie" << std::endl;
    std::cout << other << " other";
    std::cin.get();
    std::cin.get();
    return 0;
}
Программа должна подсчитать и вывести на экран количество слов начинающихся с гласных, начинающихся с согласных и слов, которые не начинаются ни с согласных ни с гласных. Почему количество слов начинающихся с согласных добавляются к переменной glasnie?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 16:43     Проверить код
Посмотрите здесь:

C++ Проверить код на корректность
C++ Проверить код
Проверить код на правильность C++
C++ Проверить код
C++ Проверить код
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Людвиг Бодмер
 Аватар для Людвиг Бодмер
212 / 209 / 70
Регистрация: 29.03.2013
Сообщений: 555
Завершенные тесты: 2
22.11.2013, 16:54     Проверить код #2
Reyzel, условия должны быть такого вида:
C++
1
if (word[0] == 'a' || word[0] =='A' || word[0] =='e' || word[0] =='E' || word[0] =='i' || word[0] =='I'
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
22.11.2013, 17:02     Проверить код #3
Надо вот так:
C++
word[0] == 'a' || word[0] == 'A' || word[0] == 'e' || word[0] == 'E' // итд.
Добавлено через 8 минут
Reyzel, можно еще вот это заменить на switch

C++
            if(word[0] == ('a' || 'A' || 'e' || 'E' || 'i' || 'I' || 'o' || 'O' || 'u' || 'U'))
                ++glasnie;
            else if (word [0] == ('B' || 'C' || 'D' || 'F' || 'G' || 'H' || 'J' || 'K' || 'L' || 'M' || 'N' || 'P'|| 'Q' || 'R' || 'S' || 'T' || 'V' || 'W' || 'X' || 'Y' || 'Z' || 'b' || 'c' || 'd' || 'f' || 'g' ||'h' ||  'j' || 'k' || 'l' || 'm' || 'n' || 'p'|| 'q' || 'r' || 's' || 't' || 'v' || 'w' || 'x' || 'y' || 'z'))
                ++soglasnie;
C++
            switch(word[0])
            {
                case 'a':
                case 'A':
                case 'e':
                case 'E':
                case 'i':
                case 'I':
                case 'o':
                case 'O':
                case 'u':
                case 'U':
                    ++glasnie;
                    break;
                    
                case 'B':
                case 'C':
                case 'D':
                case 'F':
                case 'G':
                // итд
                    ++soglasnie;
                    break;
            }
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
22.11.2013, 17:04     Проверить код #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Все еще проще
C++
1
2
if(!word.find_first_of("AaEeIiOoUu"))
   ++glasnie;
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
22.11.2013, 17:04     Проверить код #5
вот так можешь написать
C++
1
2
3
4
5
6
7
8
if (isalpha(word[0]))
        {
 
            if (word[0] == 'a' ||word[0] == 'A' ||word[0] == 'e' ||word[0] == 'E' ||word[0] == 'i' ||word[0] == 'I' ||word[0] == 'o' ||word[0] == 'O' ||word[0] == 'u' ||word[0] == 'U')
                ++glasnie;
            else
                ++soglasnie;
        }
а то такая проверка не катит:
C++
1
if (word[0] == 'a' || 'A' || 'e' || 'E' || 'i' || 'I' || 'o' || 'O' || 'u' || 'U')
Yandex
Объявления
22.11.2013, 17:04     Проверить код
Ответ Создать тему
Опции темы

Текущее время: 06:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru