Вывести На Экран Max Слово Палиндром

Тема в разделе "MS Visual C++", создана пользователем NadezdaM, 27 дек 2012.

  1. NadezdaM

    NadezdaM Гость

    Дан не пустой текст разделенный пробелами, в конце последнего слова стоит точка. Вывести на экран Max слово палиндром.
    Помогите, пожалуйста, найти ошибку.
    Код (C++):
    # include <iostream.h>
    # include <string.h>
    const n=30;

    bool is_polindrom(char str[])
    {
    int l;
    l=strlen(str);// кол-во символов
    bool b=true;// предполагаем, что палиндром
    int i=0;
    for(i=0;i<l/2&&b;i++)
    if (str[i]!=str[l-1-i])
    b=false;
    return b;
    }
    void main()
    {
    char buf[n];
    char palind[n]={'/0'};
    int max_dl=0,l;
    bool b=true;// текст не пустой
    while(b);
    {  
    cout<<"enter word";
    cin>>buf;
    l=strlen(buf);// кол-во символов
    if (buf[l-1]=='.')
    {
    b=false;
    if (buf[l-1]=='\0')
    l--;
    }
    if (is_polindrom(buf))
    {
    if (l> max_dl)
    {
    max_dl=l;
    strcpy(palind,buf);
    }

    }
    if (max_dl!=0)
    cout<<max_dl<<' '<<palind;
    }
    }
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    что не работает?
     
  3. NadezdaM

    NadezdaM Гость

    что не работает?

    Программа запускается, но выскакивает просто черный экран, на котором нельзя задать строку.
    P.s остальные задачи работают нормально

    Добавлено: Я нашла ошибку. После while не надо ставить точку запятой)))
     
Загрузка...

Поделиться этой страницей