Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 28.09.2015
Сообщений: 40
1

Определение типа предложения

03.03.2017, 19:57. Показов 1254. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. Нужно написать программу для определения типа предложения по цели высказывания. Тоесть если введена точка - писать что оно утвердительное, восклицательный знак-восклицательное. вопросительный -вопросительное, а если ничего не введено то написать ошибку. Всё сделал а последнее не могу. Из-за того что оно анализирует каждый введённый символ оно выдаёт слово ошибка ровно столько раз сколько введено символов. Я решил ввести переменную flag значение которой вначале ноль а если не обнаружено нужного символа то 1 и вынес за цикл ещё один if который должен собщать об ошибке, но в результате введения предложения без какого либо нужного символа просто ничего не происходит. Почему?
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
37
38
39
40
41
#include <iostream> 
#include <string.h>  
using namespace std;
 
int main() 
{
setlocale (LC_CTYPE, "Russian");  
bool flag=0;
char str[500]; 
int n,k=0; 
cout<<"Ввод:"<<endl; 
gets(str); 
n=strlen(str); 
for (int i=0;i<n;i++) 
if(str[i]=='.') 
{
cout<<"утвердительное."; 
}
for (int i=0;i<n;i++) 
{
if(str[i]=='!') 
{
cout<<"восклицательное."; 
}
for (int i=0;i<n;i++)
{
if(str[i]=='?') 
{
cout<<"вопросительноеì."; 
//while (str[i]!='.' & str[i]!='!' & str[i]!='?')
if(str[i]!='.' & str[i]!='!' & str[i]!='?')
{
    bool flag=1;
}
}
}
 
if(flag==1)
cout<<"error";
return 0; 
}
Добавлено через 14 минут
Всё, разобрался, ошибка была в том, что я второй раз случайно описал переменную flag в 33 строке
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2017, 19:57
Ответы с готовыми решениями:

Функция находящая все предложения заданного типа
В заданном рядке определить все вопросительные предложения. То есть определить их кол-во.

Определение типа!
У меня такой вопрос. Как можно узнать какой тип вводится? Например так: int a; int b; cout &lt;&lt;...

Дано два предложения (Распечатать слова из первого предложения, который начинаются на первую букву последнего слова второго предложения)
Дано два предложения. Распечатать: - слова из первого предложения, который начинаются на первую...

Определение типа треугольника
подскажите пожалуйста как узнать в программе тип треугольника? Вот код рабочий.#include &lt;iostream&gt;...

2
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
03.03.2017, 21:15 2
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
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <cstdlib>
#include <Windows.h>
#include <iomanip>
#include <ctype.h>
#include <string>
#include <sstream>
 
 
 
int main(){
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
 
    int count (1);
    std::string str;
    std::cout << "Введите текст: ";
    getline (std::cin, str);
 
    for (int i(0); str[i]; i++){
        
        switch (str[i]){
        case '.':
        std::cout << "Предложение №" << count << " является утвердительным!" << std::endl;
        count ++;   
        break;
 
        case '!':
        std::cout << "Предложение №" << count << " является восклицательным!" << std::endl;
        count ++;   
        break;
 
        case '?':
        std::cout << "Предложение №" << count << " является вопросительным!" << std::endl;
        count ++;
        break;
 
        }
 
    }
 
 
    system ("pause");
    return 0;
 }
0
Модератор
Эксперт С++
13682 / 10890 / 6467
Регистрация: 18.12.2011
Сообщений: 29,063
03.03.2017, 21:15 3
Форматируйте код, тогда сразу станет видно, что написана глупость:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int i=0;i<n;i++)
{
    if(str[i]=='?') 
   {
        cout<<"вопросительноеГ¬."; 
//while (str[i]!='.' & str[i]!='!' & str[i]!='?')
        if(str[i]!='.' & str[i]!='!' & str[i]!='?') // str[i] тут равно '?', проверять на другое значение бестолку
       {
             bool flag=1;
       }
   }
}
0
03.03.2017, 21:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2017, 21:15
Помогаю со студенческими работами здесь

Определение введенного типа
Задался вопросом как сделать так чтоб программа определила вводимый тип. Тоесть программа требует...

Определение типа - наследника
Здравствуйте! Проблема в следующем: контейнер хранить любого наследника некоторого базового...

Определение нужного типа
Всем привет Есть такая небольшая задачка на сообразительность) Нужно обобщить тип передаваемого...

Определение типа данных
К примеру вводим число 5, нужно определить что это тип int Если вводим какие-то символы, нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru