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

Ошибка в цикле while - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не определен базовый класс http://www.cyberforum.ru/cpp-beginners/thread648836.html
Доброго времени суток. Столкнулся с проблемой при наследовании, и не могу разобраться, как решить. Есть базовый класс SPoint и два производных Tug, Terminal. #pragma once #include "Port.h" #include "Tanker.h"
C++ Возвращаемые значения функции Есть функция, которая должна вернуть в программу значение, но что то не так. int StartInfo(int FirstWidth,int FirstHeight) { printf ("Write width: "); scanf("%d",&FirstWidth); printf ("Write height: "); scanf("%d",&FirstHeight); return FirstHeight; } int main(int argc, char** argv) http://www.cyberforum.ru/cpp-beginners/thread648822.html
C++ Что изменить в программе?
Что изменить в программе чтобы можно было работать с несколькими записями благодаря указателям на текущий следующий и предыдущий элемент#include "stdafx.h" #include "cstdlib" #include <iostream> #include <conio.h> #include <windows.h> #include <stdio.h> #include <string.h> #include <fstream> using namespace std;...
C++ Математический маятник
Доброго время суток. Нужно написать программу. Математический маятник совершает колебания по закону x(t) = A* sin(\omega *t + {\omega }_{0}). Частота \omega маятника известна. В начальный момент координата x в k раз меньше амплитуды A. В какой момент времени T отклонение маятника максимально? Написать программу для определения параметра T при условии, что параметры \omega и k вводятся...
C++ Что изменить в программе? http://www.cyberforum.ru/cpp-beginners/thread648779.html
Что нужно изменить в программе или добавить чтобы была возможность работать не с одной а с несколькими записями?#include "stdafx.h" #include "cstdlib" #include <iostream> #include <conio.h> #include <windows.h> #include <stdio.h> #include <string.h> #include <fstream> using namespace std;...
C++ Добавление имен в структуру Всем доброе время суток! Такое задание: Создать структуру ВИДЕОМАГАЗИН со следующими полями: struct Name{ Название фильма Режиссер Жанр Рейтинг популярности Цена диска подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.09.2012, 02:33     Ошибка в цикле while
Цитата Сообщение от Diezel2012 Посмотреть сообщение
Так ее тоже выкидывает.
В этом коде выкидывает?
Код
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <iostream>
#include <windows.h>
 
using namespace std;
 
void change(char *str);
void polindrom(char *str1);
 
int main ()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    char *str, *str1;
    str=new char[256];
    str1=new char[256];
    //cout<<"Введите Ф.И.О\n";
    //gets(str);
    //change(str);
    //puts(str);
    cout<<"Введите строку\n";
    gets(str1);
    polindrom(str1);
    delete[]str;
    delete[]str1;
    system("pause");
return 0;
}
 
void change(char *str)
{
    int position=0, position1=0, s=0;
    for(int i=0; str[i]!='\0'; i++)
        {
            if((str[i]!=' '&&str[i-1]==' ')||(i==0))
                {
                    if((str[i]>='a'&&str[i]<='z')||(str[i]>='а'&&str[i]<='я'))str[i]=(int)str[i]-32;
                }
                else if((str[i]!=' '&&str[i-1]!=' ')||(i!=0))
                    {
                        if((str[i]>='A'&&str[i]<='Z')||(str[i]>='А'&&str[i]<='Я'))str[i]=(int)str[i]+32;
                    }
        }
 
    for(int i=0; str[i]!='\0'; i++)
        {
            if(((str[i]>='A'&&str[i]<='Z')||(str[i]>='А'&&str[i]<='Я'))&&(i!=0))
                {
                    if(position==0)position=i;
                    if(position!=0)position1=i;
                }
        }
 
    for(int i=0; str[i]!='\0'; i++)
        {
            if(((str[i]>='A'&&str[i]<='Z')||(str[i]>='А'&&str[i]<='Я'))&&(i!=0))
                {
                    if(position==0)position=i;
                    if(position!=0)position1=i;
                }
        }
 
    for(int i=position; str[i]!='\0'; i++)
        {
            switch(s)
                {
                    case 1:
                    str[i]='.';
                    break;
 
                    case 2:
                    str[i]=str[position1];
                    break;
 
                    case 3:
                    str[i]='.';
                    break;
                }
            if(s>3)str[i]='\0';
            s++;
        }
}
 
void polindrom(char *str1)
{
    int p;
    bool flag;
    for(int i=0; str1[i]!='\0'; i++)
        {
            p=i;
            if((str1[i]!=' '&&str1[i-1]==' ')||(i==0))
                {
                    while(str1[p]!=' '&& str1[p + 1]!='\0')p++;//<-Проблема здесь (бесконечный цикл)
                        for(int j=i, k=0;j<=(p+i)/2;j++,k++)
                            {
                                if(str1[j]!=str1[p-k])flag=false;
                            }
                            if(flag==true)
                                {
                                    cout<<"Слово ";
                                        for(int j=i;j<=p;j++)
                                            {
                                                cout<<str1[j];
                                            }
                                        cout<<" - является полиндромом\n";
                                    }
                }
        }
}


Добавлено через 3 минуты
Цитата Сообщение от Diezel2012 Посмотреть сообщение
Напомню мне необходимо условие что если после символа следует пробел или конец строки (если это последнее слово в строке) тогда прекратить наращивать счетчик
Так и работает. Поставьте точку остановки и посмотрите сами.
 
Текущее время: 13:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru