Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
1

Не успеваю просмотреть программу сразу исчезает

31.03.2009, 14:26. Просмотров 1918. Ответов 26
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int swap(int);
int main()
{
    int n=1;
    swap(n);
    int y;
    y=swap(n);
    cout<<y;
    system("pause");
    return 0;
}
int swap(int n)
{
    while(n>10);
    return swap(n++);
}
Задача такая сосчитать количество обращений к функции,то есть кол-во обращений к ней,я написал рекурсивную вроде функцию,но она сразу исчезает,ни system("pause"); не помогает ни getchar(); что делать фиг знает
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2009, 14:26
Ответы с готовыми решениями:

Сразу исчезает командная строка
Здравствуйте, решил начать изучать программирование, скачал Visual Studio, ввёл код (на C++) вывода...

Окно .exe появляется и сразу исчезает
Здравствуйте, не могу её по завершению остановить, пробовал с getch() system(&quot;pause&quot;) VS2010 ...

Окошко для printf/scanf появляется и сразу исчезает
вот код моей программы: #include &quot;stdafx.h&quot; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include...

Окно появляется и сразу исчезает
Раньше у меня в main.cpp создавалось окно mainWindow и показывалось. Теперь же я хочу, чтоб при...

Контекстное меню появляется и сразу исчезает
Всем привет. Надо мне тут реализовать отображение контекстного меню при клике мышкой по картинке....

26
Haster
инженер-системотехник
111 / 110 / 5
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:29 2
У тебя бесконечная рекурсия получается, предусмотри выход из нее
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:31  [ТС] 3
Цитата Сообщение от Haster Посмотреть сообщение
У тебя бесконечная рекурсия получается, предусмотри выход из нее
А как?
0
Vourhey
Почетный модератор
6497 / 2272 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
31.03.2009, 14:32 4
C++
1
2
    while(n>10);
return swap(n++);
что это за красота? Я ниче не делаю, пока н больше 10? А потом на возвращении заново вызываю саму себя...бесконечное количество раз. Оригинал...
У тя прога даже до конца не дойдет. Свалится.
0
31.03.2009, 14:32
Haster
инженер-системотехник
111 / 110 / 5
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:35 5
Так что у тебя программа должна делать?
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:38  [ТС] 6
Цитата Сообщение от Vourhey Посмотреть сообщение
что это за красота? Я ниче не делаю, пока н больше 10? Оригинал...
У тя прога даже до конца не дойдет. Свалится.
Да это я просто написална самом деле нада n<10,но даже если так делать она просто тупо стоит и не выводит ничего на Экран

Добавлено через 39 секунд
Цитата Сообщение от Haster Посмотреть сообщение
Так что у тебя программа должна делать?
Задача такая сосчитать количество обращений к функции,то есть кол-во обращений к ней,
0
Haster
инженер-системотехник
111 / 110 / 5
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:39 7
Перед возвратом из функци main напиши что-то типа
char tmp;
cin>>tmp;
проверь, выводи что-нибудь?

while(n>10); вот эта штука тупо ничего не делает...
При n<=10 не влияет на код, при n>10 у тебя условие становится равным 1 и получается бесконечный цикл
Убери точку с запятой
0
Vourhey
Почетный модератор
6497 / 2272 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
31.03.2009, 14:41 8
Какая фиг разница.
Да потому что у тебя либо бесконечный цикл в твоей проге (тогда она висит), либо бесконечная рекурсия, которая валится в segmentation fault и прога вываливается.

Добавлено через 1 минуту 45 секунд
Вот сам, блин, включи голову-то.
У тебя n равен 1. И ты делаешь while(n<10); - пустая операция, пока н меньше десяти. А н у тебя единица всегда. Че тут непонятного...
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:43  [ТС] 9
Цитата Сообщение от Haster Посмотреть сообщение
Перед возвратом из функци main напиши что-то типа
char tmp;
cin>>tmp;
проверь, выводи что-нибудь?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int swap(int);
int main()
{
    int n=1;
    swap(n);
    int y;
    y=swap(n);
    cout<<y;
    cout<<n;
    char tmp;
    cin>>tmp;
    system("pause");
    return 0;
}
int swap(int n)
{
    while(n<10);
    return swap(n++);
}
Даже если итак невозможно ничего ввестидаже просто тупо стоит,а если поставить n<10 сразу пишет что то и быстро вылетает
0
Vourhey
Почетный модератор
6497 / 2272 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
31.03.2009, 14:45 10
см выше, я описал что происходит в обоих твоих случаях.

Добавлено через 42 секунды
Он пишет тебе,что у тебя закорапчена память, из-за рекурсии бесконечной.
0
Haster
инженер-системотехник
111 / 110 / 5
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:45 11
Смотри выше )))
Вообще твоя функция swap ничего не подсчитывает
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:47  [ТС] 12
Цитата Сообщение от Vourhey Посмотреть сообщение
Вот сам, блин, включи голову-то.
У тебя n равен 1. И ты делаешь while(n<10); - пустая операция, пока н меньше десяти. А н у тебя единица всегда. Че тут непонятного..
Ну так я же в рекурсии меняю n++,получается
Переписал по другому,а почему так исчезает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int swap(int);
int main()
{   int n;
    swap(n);
    int y;
    y=swap(n);
    cout<<y;
    system("pause");
    return 0;
}
int swap(int n)
{
    for(n=1;n<10;n++);
    return swap(n++);
}
0
Haster
инженер-системотехник
111 / 110 / 5
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:49 13
А вообще подсчитывать обращение к функции с помощью рекурсии - странное решение. Лучше воспользоваться переменной static, объявленной в функции

Добавлено через 1 минуту 26 секунд
Потому-что у тебя нет выхода и рекурсии....
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:52  [ТС] 14
Цитата Сообщение от Haster Посмотреть сообщение
Потому-что у тебя нет выхода и рекурсии...
А как из такой рекурсии сделать Выход?
0
Haster
инженер-системотехник
111 / 110 / 5
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:53 15
Нужно что-то типа:
C++
1
2
3
4
5
int swap(int n)
{
   if(n>10) return n;
   else return swap(++n);
}
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:53  [ТС] 16
Или правильно написать такую рекурсию как?
0
Haster
инженер-системотехник
111 / 110 / 5
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:57 17
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int swap(int);
int main()
{   int n;
    swap(n);
    int y;
    y=swap(n);
    cout<<y;
    system("pause");
    return 0;
}
int swap(int n)
{
   if(n>10) return n;
   else return swap(++n);
}
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:58  [ТС] 18
А вот допустим как сделать так чтобы функции не суммировались,а как толька вызвали функцию сразу n+1,и выводилось количество?обращений.Ну то есть не как тут вывести 11 функций,а кол-во обращений
0
Haster
инженер-системотехник
111 / 110 / 5
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 15:00 19
Это без рекурсии делается, а при помощи статической переменной )
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 15:19  [ТС] 20
Цитата Сообщение от Haster Посмотреть сообщение
Это без рекурсии делается, а при помощи статической переменной )
Ну а как?
0
31.03.2009, 15:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2009, 15:19

Эмулятор исчезает сразу после запуска
Запускаю в Android Studio эмулятор, окно открывается на пару секунд и исчезает. В чем может быть...

Форма в Vba исчезает сразу после появления
Добрый день! Возникла необходимость создать программу с формой в Excel. Поскольку только начала в...

Программа выводится на экран на секунду и сразу исчезает
Ради любопытства решил изучить язык программирования Си шарп. Ранее языка программирования не...


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

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

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