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

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

Войти
Регистрация
Восстановить пароль
 
Aros
1 / 1 / 0
Регистрация: 29.10.2009
Сообщений: 11
#1

программа зацикливается - C++

30.10.2009, 15:15. Просмотров 393. Ответов 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<alloc.h>
#include<string.h>
#define maxlen 26
 
void main(){
char *s,*res,*a,*b;int i,m,fl,j,k,r,sl;label: fl=0;
puts("Vvedit ryadok-------->\n");
gets(s); l:
puts("vvedit do yakoi dovzhini virivnyati ryadok\nm= \n");
scanf("%i",&m);
if((s=="\n")||(s==" ")){
puts("ryadok maye mistiti simvoli\n");
goto label;}
if(strlen(s)>maxlen){
puts("ryadok zavelikii\n");
goto label;}
if(strlen(s)>m){
puts("do menshoi dovzhini virivnyati ne mozhna m<s\nvvedit bilshe m\n");
goto l;
}
for(i=0;i<strlen(s);i++){
if(*(s+i)==' '){
fl=1;}}
if(fl==0){
puts("vvedit bilshe nizh 1 slovo\n");goto label;
}
sl=strlen(s);
if(fl==1){ l1:
if(sl<m){
if(*(s+i)==' '){
r=i;i++;
for(j=0;j<r;j++){
*(a+j)=*(s+j);  }
for(k=r;k<sl;k++){
*(b+k)=*(s+k);} sl++;}
goto l1; }
 
res=strcat(a,b);
puts(res); }
getch();
 
}
зацикливается здесь
C++
1
2
3
4
5
6
7
8
9
if(fl==1){ l1:
if(sl<m){
if(*(s+i)==' '){
r=i;i++;
for(j=0;j<r;j++){
*(a+j)=*(s+j);  }
for(k=r;k<sl;k++){
*(b+k)=*(s+k);} sl++;}
goto l1; }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2009, 15:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос программа зацикливается (C++):

Зацикливается программа - C++
Нужно сделать стек из элементов и вывести все положительные значения. Программа на этапе принта зацикливается, посмотрите, что не так: ...

Программа зацикливается - C++
void __fastcall TForm1::Button1Click(TObject *Sender) { int k; float a,sum,x; a=StrToFloat(Edit1-&gt;Text); k=1; sum=0; ...

Программа зацикливается - C++
всё описание я зделал в коде #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;string&gt; using namespace std; int main()...

Программа зацикливается - C++
Программа зацикливается после ввода размеров массива. Подскажите пожалуйста, где ошибка. #include &lt;iostream&gt; void inn(int **, int,...

Программа зацикливается в цикле for - C++
Помогите разобраться с программой вводит массив нормально, но потом зацикливается. Задача такова S=\sum_{i=1}^{M}(\min_{j}\{a_{ij}\}) ...

Программа зацикливается. Почему? - C++
Когда заполняю матрицу с клавиатуры - работает нормально. Когда заполняю случайными числами она зацикливается. #include &lt;iostream&gt; ...

4
M128K145
Эксперт С++
8293 / 3513 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
30.10.2009, 15:38 #2
Aros, потому что ты нигде не меняешь fl
1
Aros
1 / 1 / 0
Регистрация: 29.10.2009
Сообщений: 11
30.10.2009, 15:40  [ТС] #3
спасибо!!!!
0
Неумейка
12 / 11 / 2
Регистрация: 14.02.2009
Сообщений: 89
30.10.2009, 15:42 #4
Ну так все правильно, ты в строке goto l1; делаешь переход вот сюда l1: if(sl<m) и все повторяется.
Вы равняй отступы текста программы как это положено и все сам увидишь.
Цитата Сообщение от M128K145 Посмотреть сообщение
ты нигде не меняешь fl
метка стоит после этого условия. Aros, вобщем равняй текст
1
M128K145
Эксперт С++
8293 / 3513 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
30.10.2009, 16:21 #5
Вот это как раз тот случай, когда использовать goto нельзя. Для этого надо использовать циклы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    if(fl==1)
        while(sl<m)
        {
            if(*(s+i)==' ')
            {
                r=i;
                i++;
                for(j=0;j<r;j++)
                    *(a+j)=*(s+j);  
                for(k=r;k<sl;k++)
                    *(b+k)=*(s+k);
                sl++;
            }
        }
1
30.10.2009, 16:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2009, 16:21
Привет! Вот еще темы с ответами:

Почему зацикливается программа? - C++
Нужно найти сумму элементов матрицы 4x4 на побочной диагонали. Если поразмышлять, любой элемент побочной диагонали удовлетворяет уравнению...

Программа зацикливается,не понимаю причину - C++
Зацикливается на vyvod2. typedef struct Tstek { int number ; struct Tstek*next; }Tstek; Tstek* head=NULL; ...

Шеннон-Фано, зацикливается программа - C++
В чем косяк? почему то зацикливается и все, хз даже что делать, перепробывал все :( #include &lt;iostream&gt; #include &lt;string&gt; using...

Программа зацикливается при изменении всех 2 на 2 - C++
void ExchangeWord(List **ListPtr, int pozition, char *word){ //заменяет слово на позиции if(*ListPtr!=NULL){ // условие завершения...


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

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

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