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

СИМВОЛЫ - C++

Восстановить пароль Регистрация
 
Наська_91
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 12
15.01.2011, 22:54     СИМВОЛЫ #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
# include <iostream> 
using namespace std;
int main()
{
    /*Вводиться послiдовнiсть символiв поки не зустрiнеться символ ’.’. 
    Встановити яких символiв введено більше ’a’ чи ’o’.*/
    int i=0, kilkist_a=0, kilkist_o=0; char simvol=0;
    while (i<100)
    {
        cout<<"Enter simvol: ";
        cin>>simvol;
        if (simvol='a')
        {
            kilkist_a=kilkist_a+1;
        }
        if (simvol='o')
        {
            kilkist_o=kilkist_o+1;
        }
        if (simvol='.')
        {
            break;
        }
        i++;
    } 
    if (kilkist_o>kilkist_a)
    {
        cout<<"Sumvoliv 'o' bilshe"<<endl;
    } else
    {
        cout<<"Sumvoliv 'a' bilshe"<<endl;
    }
    return 0;
}
Прога выводит результат после ввода первого символа...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2011, 22:54     СИМВОЛЫ
Посмотрите здесь:

C++ Дан файл, компонентами которого являются символы. Переписать все символы в новый файл в обратном порядке.
C++ Вывести на экран в первой строке нечетные символы, во второй четные символы исходной строки
C++ Упорядочить символы в алфавитном порядке, при этом все повторяющиеся символы должны быть удалены и переписать новый текст в файл D
C++ Поменять символы одного массива на символы из другого
C++ Сформировать строку S таким образом, чтобы в нее попеременно вошли четные символы строки S1 и нечетные символы строки S2.
Алфавит. Символы операций. Специальные символы C++
написать функцию, которая в строке заменяет все символы верхенго регистра в символы нижнего регистра C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
15.01.2011, 22:58     СИМВОЛЫ #2
Наська_91, так вы вводите не строку, а одни символ!!!!
Наська_91
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 12
15.01.2011, 23:01  [ТС]     СИМВОЛЫ #3
в том и прикол, что тип string нам не объясняли... и нужно сделать через тип char
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
15.01.2011, 23:04     СИМВОЛЫ #4
Цитата Сообщение от Наська_91 Посмотреть сообщение
в том и прикол, что тип string нам не объясняли... и нужно сделать через тип char
Ну тогда, незнаю как без массивов, ведь строка ето и есть массив символов(если не учитывать string)!!!!
Наська_91
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 12
15.01.2011, 23:09  [ТС]     СИМВОЛЫ #5
MILAN, вот я тоже не знаю... уже третий день парюсь...
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
16.01.2011, 03:17     СИМВОЛЫ #6
Выдает результат после первого ввода символа, потому что вот эта строка
C++
1
if (simvol='.')
возвращает условие true. Вместо одного "=" должно быть два, потому что это сравнение, а не присваивание.
По задаче - ввод символов должен осуществляться как строка или допускается "ентерить" после каждого символа? Если первый вариант, то без стринга/массива чаров не обойтись, а если 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
#include <iostream>
 
using namespace std;
 
int main()
{
    int kilkist_a=0, kilkist_o=0;
    char c;
 
    cout<<"Nu scho, po4inay vvodutu sumvolu!"<<endl;
    while (17==17)
    {
        cin>>c;
        if (c=='.')
            break;
        if ( (c=='a') || (c=='A') )
            kilkist_a++;
        if ( (c=='o') || (c=='O') )
            kilkist_o++;
    };
    if (kilkist_a>kilkist_o)
        cout<<endl<<"Sumvoliv 'A' bilwe"<<endl;
    else if (kilkist_a<kilkist_o)
        cout<<endl<<"Sumvoliv 'O' bilwe"<<endl;
    else
        cout<<endl<<"Sumvoliv 'O' ta 'A' odnakova kilkist"<<endl;
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2011, 14:54     СИМВОЛЫ
Еще ссылки по теме:

C++ Написать функцию которая в строке заменяет все символы верхнего регистра в символы нижнего регистра
C++ не могу понять задачку. Даны натуральное число n и символы s1, s2,., sn. Получить символы, принадлежащие последовательности s1, s2,., sn, которые
C++ Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить символы B в порядке, обратном к алфавитном
Задана строка, символы которой могут повторяться. Нужно удалить все символы строки с помощью наименьшего количества вычеркиваний C++
Как обрезать эффективно часть строки, составляющую последние символы "/" и следующие за ними символы? C++

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

Или воспользуйтесь поиском по форуму:
pupanya
4 / 4 / 2
Регистрация: 11.11.2010
Сообщений: 54
Завершенные тесты: 1
24.01.2011, 14:54     СИМВОЛЫ #7
могу предложить такой вариант
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
#include <iostream.h>
#include <conio.h>
main()
{
    const int n=100;
    char a[n];
    int b,qa=0, qo=0;
    cout<<"Vvedite text"<<endl;
    cin.getline(a,n+1);
    b=strlen(a);
    for(int i=0;i<=b;i++)
        {
            if(a[i]=='a')
                qa++;
            if(a[i]=='o')
                qo++;
            if(a[i]=='.')
                break;
        }
    if(qa>qo)
        cout<<"a simvolov preobladaet"<<endl;
    else if(qa<qo)
        cout<<"o simvolov preobladaet"<<endl;
        else
        cout<<"simvolov a i o ravnoe kolichestvo"<<endl;
    getch();
}
Yandex
Объявления
24.01.2011, 14:54     СИМВОЛЫ
Ответ Создать тему
Опции темы

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