Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Задача


Автор: indolent 10.5.2007, 16:48
Итак,ЗАДАЧА:
Дана строка. Найти в ней количество букв А, рядом с которыми нет букв В.
Вот, что я написала:
Код

unsigned char a,b,mas[50];
    int q,m=0;
    textcolor(15);gotoxy(5,4);
    cprintf("\nВведите строку:  ");
    gets(mas);
    q=strlen(mas);
    cprintf("\nВведите буквы А и В :  ");
    scanf("%с %с" ,&a,&b);
    for(int i = 0; i <q; i++)
    {
      if(mas[i]==a)
     { if(mas[i+1]!=b && mas[i-1]!=b) m++;}
    }
    cprintf("\nКоличество букв %c, рядом с которыми нет букв %c - %d ",a,b,m);
getch();return 0;

Проблема в том, что он не ждет ввода букв А и В, а сразу выводит последнее сообщение с какими-то непонятными символами. Что я делаю не так? 

Автор: FiMa1 10.5.2007, 16:57
indolent, у тебя выводится непонятные символы, т.к. консоль не может сама по себе корректно отобразить кирриллицу. Самое простое вот так:
Код
//Найти в строке количество букв А, рядом с которыми нет букв В.
#include <iostream>
using namespace std;

int main( void )
{
    const int SIZEOFBUF = 10;
    char str[SIZEOFBUF];
    char a, b;
    int cnt = 0;

    cout << "Input a string (not more " << SIZEOFBUF << " chars): ";
    for( int i = 0; i < SIZEOFBUF; i++ )
        cin >> str[i];

    cout << "Input two chars for search: ";
    cin >> a; cin >> b;        

    for( int i = 0; i < SIZEOFBUF; i++ )
        if( str[i] == a &&  str[i-1] != b &&  str[i+1] != b )
            cnt++;

    cout << "Count of " << a << " without " << b << " is " << cnt << endl;
    
    return 0;
}

Автор: vinter 10.5.2007, 17:14
перед сканфом почисть буфер ввода

Автор: indolent 11.5.2007, 15:53
А как буфер чиститься?
FiMa1 спасибочки, что прогу написал! 

Автор: EvgenZ 11.5.2007, 17:53
std::cout << std::endl; 

Автор: indolent 11.5.2007, 18:12
Извиняйте, я не знаю, что такое  std! 
Я как-то без него существую! Новичок, знаете ли... пишу на Borland C++3.1 под DOS.

Автор: it_medved 11.5.2007, 18:30
А под калькулятор писать не пробовал? smile
Тему надо пометить оконченой

Добавлено @ 18:31
И еще, называете переменные осмысленно! Потому что твой код очено нечитабельный

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)