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

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

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

Почему прога не выходит из цикла? - C++

22.09.2009, 14:17. Просмотров 841. Ответов 12
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int main ()
    {unsigned int s,a,k,n,min,max,kol;
    min=0;
    a=0;
    s=0;
    kol=0;
    max=0;
    scanf ("%d\n",&k);
    n=0;
    while (n!=0) 
        {
        scanf ("%d",&n);
        a++;
        if (n<=min) if (n=min) kol++; 
                else min=n;
        if (n>=max) max=n;
        if (n>k) s=a;
        }
    prinf ("Min=%d Vsego Min:%d Max=%d Nomer elementa>K:%d",min,kol,max,s);
    return 0;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2009, 14:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему прога не выходит из цикла? (C++):

Не выходит из цикла - C++
Доброго времени суток! При нажатии цифры &quot;1&quot;, а затем последовательно &quot;2&quot; z должно суммировать результат кейсов и выводить программу из...

Не выходит из цикла - C++
Хотел написать простой код для считывания введенный в консоль через пробел чисел в вектор, но что-то пошло не так: читать читает, заносит,...

Не выходит из цикла - C++
не понимаю почему при значениях c,t,p,g не выходит из цикла. После ввода значения проверочное выражение получает false и дальше идет...

Не выходит из цикла while - C++
почему при нажатии (-1) не выходит из цикла? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;iomanip&gt; ...

когда выходит из цикла - C++
Ребят, есть программа (не моя) которая выводит слова которые есть в строке, совпадающую с каким то словом. Объясните плз, почему...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
22.09.2009, 14:23 #2
в общем-то он туда и не заходит)

Добавлено через 2 минуты
кроме того:
C++
1
2
3
if (n<=min) if (n=min) kol++; // если n присвоить min
// надо так
if (n<=min) if (n==min) kol++;
unick12345
1312 / 1003 / 58
Регистрация: 27.03.2009
Сообщений: 3,737
22.09.2009, 14:26 #3
Цитата Сообщение от Beonix Посмотреть сообщение
n=0;
while (n!=0)
пока n<>0, а выше оно уже равно
Beonix
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 5
22.09.2009, 14:29  [ТС] #4
Цитата Сообщение от unick12345 Посмотреть сообщение
пока n<>0, а выше оно уже равно
Это я ввел специально что бы прога сразу завершилась, но она все равно бесконечно требует ввода цифр((
Evg
Эксперт CАвтор FAQ
17627 / 5851 / 376
Регистрация: 30.03.2009
Сообщений: 16,137
Записей в блоге: 26
22.09.2009, 14:30 #5
А ты нулевое значение вводил чтобы вышло из цикла?
R0mm
Псевдо программист
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
22.09.2009, 14:34 #6
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
#include <stdio.h>
int main ()
{
    unsigned int s,a,k,n,min,max,kol;
    min=0;
    a=0;
    s=0;
    kol=0;
    max=0;
    scanf ("%d\n",&k);
    while (n!=0) 
    {
        scanf ("%d",&n);
        a++;
        if (n<=min){
                if (n==min) kol++; 
                else min=n;
        }
        else if (n>max) max=n;
        if (n>k) s=a;
    }
    prinf ("Min=%d Vsego Min:%d Max=%d Nomer elementa>K:%d",min,kol,max,s);
    return 0;
}
Только если я правильно понял задание, то прога не правильно считает количество минимальных элементов %)
Beonix
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 5
22.09.2009, 14:35  [ТС] #7
Цитата Сообщение от Evg Посмотреть сообщение
А ты нулевое значение вводил чтобы вышло из цикла?
Конечно, токо прога почему-то переходит в самое начало и начинается все заново, а до
prinf ("Min=%d Vsego Min:%d Max=%d Nomer elementa>K:%d",min,kol,max,s);
даже не доходит((
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
22.09.2009, 14:40 #8
потому, что строка
C++
1
if (n<=min) if (n=min) kol++;
присваивает n совсем не ноль, вот и не выходит
Beonix
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 5
22.09.2009, 14:43  [ТС] #9
Нашел, это из-за опечатки мне не компилировалась прога и в итоге я запускал старую)) НО теперь новая проблемма:
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
#include <stdio.h>
int main ()
    {int s,a,k,n,min,max,kol;
    min=0;
    a=0;
    s=0;
    kol=0;
    max=0;
    printf ("Vvedite K:");
    scanf ("%d\n",&k);
    n=1;
    printf ("Vvedite posledovatelnost cifr:\n");
    while (n!=0) 
        {
        scanf ("%d",&n);
        if (n==0) break;
        a++;
        if (n<=min) if (n==min) kol++; 
                else min=n;
        if (n>=max) max=n;
        if (n>k) s=a;
        }
    printf ("Min=%d Vsego Min:%d Max=%d Nomer elementa>K:%d",min,kol,max,s);
    return 0;
    }
ПРи запуске спрашивает: Vvedite K:
ПОсле того как я ввел цифру курсор переходит на следующую строку и ждет ввода цифры, а после нее токо выводится: Vvedite posledovatelnost cifr: (Хотя должно выводится сразу после того как я ввел К)!?
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
22.09.2009, 14:46 #10
C++
1
scanf ("%d",&k);
Beonix
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 5
22.09.2009, 14:50  [ТС] #11
Цитата Сообщение от R0mm Посмотреть сообщение
Только если я правильно понял задание, то прога не правильно считает количество минимальных элементов %)
спс исправил
R0mm
Псевдо программист
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
22.09.2009, 14:52 #12
немного исправил
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 "stdafx.h"
#include "iostream"
#include "stdio.h"
 
int main(){
    unsigned int s,a,k,n,min,max,kol;
    min=0;
    a=1;
    s=0;
    kol=1;
    scanf ("%d",&k);
    scanf ("%d",&n);
    max = min = n;
    while (n!=0) 
    {
        scanf ("%d",&n);
        a++;
        if (n<=min && n!=0){
                if (n==min) kol++; 
                else{
                    min=n;
                    kol = 1;
                }
        }
        else if (n>max) max=n;
        if (n>k) s=a;
    }
    printf("Min=%d Vsego Min:%d Max=%d Nomer elementa>K:%d\n",min,kol,max,s);
    system("pause");
}
Gus
24 / 35 / 2
Регистрация: 17.02.2009
Сообщений: 364
06.10.2009, 21:58 #13
лучше юзай for
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2009, 21:58
Привет! Вот еще темы с ответами:

Не выходит из цикла. Не переходит на след. узел. - C++
Доброго времени суток всем! Как видно из названия проблема проста, но почему то не решаема для меня. Собственно проблема в присвоении. ...

Оператор break выходит из цикла и ветвления? - C++
Например код: for(int j=0; j&lt;10; j++) { if(j&lt;10) cout&lt;&lt;&quot;Выход!&quot;;break; Другие операторы; Другие операторы; Другие...

Не выходит из цикла при использовании append - C++
for (i = 1; i &lt; n; i++) { P.append(P, i, 1); } for (i; i != 1; i--) { S.append(P, i, 1); }При выходе из циклов...

while (cin >> s) - не выходит из цикла по нажатию enter - C++
Собственно сабж... #include &lt;iostream&gt; #include &lt;strings.h&gt; #include &lt;list&gt; using namespace std; void OUTS...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.10.2009, 21:58
Ответ Создать тему
Опции темы

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