С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
papirus
2 / 2 / 0
Регистрация: 21.07.2009
Сообщений: 49
#1

Прога на строки - C++

30.01.2010, 16:23. Просмотров 556. Ответов 8
Метки нет (Все метки)

Условие: дана строка. Определить кол-во букв "а" в последнем слове.
Посмотрите в чем дело? не работает что-то выдает значение 0.
вот код:
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
#include <iostream.h>
#include <math.h>;
#include <conio.h>;
#include <string.h>;
int main()
{
    char st[100];
    cout<<"Введите строку";
    cin>>st;
    int f=1; //флаг о том что пробел отсутсвует
    int kol=0; //кол-во букв "а"
    for (int i=strlen(st); (i==0); i--) //считываем посимвольно с конца файла
    {
     
         if (st[i]='a') // если это буква-а то kol увеличиваем
           ++kol; 
        else
             if (st[i]==' ')  // иначе если это пробел то
                {
                  if (f==1)   // и пробелов не встречалось то 
                   continue  //переходим к следующей итерации
                  else
                    break;   // если пробел был то выходим из цикла
                    }
        f=0;
        }
    cout<<kol;
    getchar();
    getchar();
}
вот исходник:
0
Вложения
Тип файла: rar exe_8.rar (402 байт, 19 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2010, 16:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прога на строки (C++):

Новичку нужна прога, ребята выручайте. тема строки - C++
Всем привет! Натолкнулся на ваш форум, в с не очень разбираюсь, думаю поможете написать прогу Задан список из N - человек в форме...

надо что то добавить!!прога просто выводит список групп,учеников и первых 3 оценок.надо чтобы прога в конце показывала по убыванию средего балла - C++
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include&lt;string.h&gt; #include&lt;stdlib.h&gt; main() {int t,o1,o2,o3; char...

Прога на СИ!1!! - C++
Распечатать введенную строку, удалив из нее символы, не являющиеся буквами и цифрами, и заменив каждую цифру на ‘*’. Очень нужна...

Прога на СИ!! - C++
Надо написать задачку на Си!!! Даны целые числа n, m и вещественное число Х. Используя директиву #define для нахождения наибольшего из...

Прога к курсачу.. - C++
Вообщем курсач на тему &quot;сбербанка&quot; Есть как бе часть программы 2\3 сделанная, я вроде бы переделал как мог доделал ее! но не все работает и...

не работает прога - C++
#include &lt;cstdlib&gt; #include &lt;stdio.h&gt; #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; //#define...

8
papirus
2 / 2 / 0
Регистрация: 21.07.2009
Сообщений: 49
30.01.2010, 16:28  [ТС] #2
или может кто сможет переделать вот эту прогу, она на билдере сделана, все работает. Один чел помог
0
Вложения
Тип файла: rar qwer.rar (296.4 Кб, 14 просмотров)
CheshireCat
Эксперт С++
2896 / 1245 / 78
Регистрация: 27.05.2008
Сообщений: 3,405
30.01.2010, 17:01 #3
Навскидку проблема вот тут:
for (int i=strlen(st); (i==0); i--) //считываем посимвольно с конца файла
должно быть
... (i>=0); ...
0
papirus
2 / 2 / 0
Регистрация: 21.07.2009
Сообщений: 49
30.01.2010, 19:56  [ТС] #4
CheshireCat, не помогло

Добавлено через 2 часа 43 минуты
ну плз гляньте
0
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,481
30.01.2010, 20:21 #5
C++
1
2
3
char st[100];
cout<<"Введите строку";
cin>>st;
У меня после этого в st введенная строка не лежит. Наверное что то связанное с кодировками? Не знаю. В остальном вроде верно но основной цикл я бы сделал так:
C++
1
2
3
4
5
6
7
8
        for (int i=strlen(st); (i==0); i--) //считываем посимвольно с конца файла
        {
            if (st[i]='a') // если это буква-а то kol увеличиваем
                ++kol; 
            else
            if (st[i]==' ')  // иначе если это пробел то
                break;
        }
0
papirus
2 / 2 / 0
Регистрация: 21.07.2009
Сообщений: 49
30.01.2010, 20:26  [ТС] #6
insideone, а как ввод сделать строки?
0
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,481
30.01.2010, 21:06 #7
Стоп стоп! Вы приглядитесь!
C++
1
if (st[i]='a')
Это не сравнение, это присваивание. К тому же цикл при i == 0 не выполняется ни разу.


Добавлено через 4 минуты
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>
#include <math.h>
#include <conio.h>
#include <string.h>
 
using namespace std;
int main()
{
        unsigned char st[100];
        cout << "Введите строку";
        int Count=0;
        while ((st[Count]=getchar())!='\n')
        {
        Count++;
        }
        st[Count]='\0';
        int kol = 0; //кол-во букв "а"
        for (int i=Count; i > 0; i--) //считываем посимвольно с конца файла
        {
            if (st[i]==160) // если это буква-а то kol увеличиваем
                ++kol; 
            else
            if (st[i]==32)  // иначе если это пробел то
                break;
        }
        cout << kol;
        getchar();
        getchar();
}
Вот теперь это работает! Проанализируйте =)
1
papirus
2 / 2 / 0
Регистрация: 21.07.2009
Сообщений: 49
30.01.2010, 21:18  [ТС] #8
insideone,
спасибо большое))
вроде бы понял.

Цитата Сообщение от insideone Посмотреть сообщение
st[Count]='\0';
только это непонятно для чего?

Добавлено через 42 секунды
конец строки?
0
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,481
30.01.2010, 21:22 #9
да, нужно закончить строку нулевым символом иначе если его там нет строка окажется непредсказуемо больше)
1
30.01.2010, 21:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2010, 21:22
Привет! Вот еще темы с ответами:

Прога зависает - C++
#ifndef CONNECTOR_H #define CONNECTOR_H #include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; ...

Прога по Структурам - C++
Ни могу понять как в массив забить рациональное число((( Вот задание: Ввести структуру (с полями числитель и знаменатель) для описания...

Не работает прога - C++
#include &lt;iostream&gt; using namespace std; int main() {//Начало int x,y; cout&lt;&lt;&quot;Vvedite chislo &quot;; cin&gt;&gt;x; switch(x) { case...

Автономная прога - C++
Как сделать прогу на борланде автономной.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.