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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:26     Не успеваю просмотреть программу сразу исчезает #1
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(); что делать фиг знает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:29     Не успеваю просмотреть программу сразу исчезает #2
У тебя бесконечная рекурсия получается, предусмотри выход из нее
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:31  [ТС]     Не успеваю просмотреть программу сразу исчезает #3
Цитата Сообщение от Haster Посмотреть сообщение
У тебя бесконечная рекурсия получается, предусмотри выход из нее
А как?
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
31.03.2009, 14:32     Не успеваю просмотреть программу сразу исчезает #4
C++
1
2
    while(n>10);
return swap(n++);
что это за красота? Я ниче не делаю, пока н больше 10? А потом на возвращении заново вызываю саму себя...бесконечное количество раз. Оригинал...
У тя прога даже до конца не дойдет. Свалится.
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:35     Не успеваю просмотреть программу сразу исчезает #5
Так что у тебя программа должна делать?
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:38  [ТС]     Не успеваю просмотреть программу сразу исчезает #6
Цитата Сообщение от Vourhey Посмотреть сообщение
что это за красота? Я ниче не делаю, пока н больше 10? Оригинал...
У тя прога даже до конца не дойдет. Свалится.
Да это я просто написална самом деле нада n<10,но даже если так делать она просто тупо стоит и не выводит ничего на Экран

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

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

Добавлено через 1 минуту 45 секунд
Вот сам, блин, включи голову-то.
У тебя n равен 1. И ты делаешь while(n<10); - пустая операция, пока н меньше десяти. А н у тебя единица всегда. Че тут непонятного...
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 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 сразу пишет что то и быстро вылетает
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
31.03.2009, 14:45     Не успеваю просмотреть программу сразу исчезает #10
см выше, я описал что происходит в обоих твоих случаях.

Добавлено через 42 секунды
Он пишет тебе,что у тебя закорапчена память, из-за рекурсии бесконечной.
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:45     Не успеваю просмотреть программу сразу исчезает #11
Смотри выше )))
Вообще твоя функция swap ничего не подсчитывает
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 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++);
}
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 14:49     Не успеваю просмотреть программу сразу исчезает #13
А вообще подсчитывать обращение к функции с помощью рекурсии - странное решение. Лучше воспользоваться переменной static, объявленной в функции

Добавлено через 1 минуту 26 секунд
Потому-что у тебя нет выхода и рекурсии....
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:52  [ТС]     Не успеваю просмотреть программу сразу исчезает #14
Цитата Сообщение от Haster Посмотреть сообщение
Потому-что у тебя нет выхода и рекурсии...
А как из такой рекурсии сделать Выход?
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 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);
}
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:53  [ТС]     Не успеваю просмотреть программу сразу исчезает #16
Или правильно написать такую рекурсию как?
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 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);
}
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:58  [ТС]     Не успеваю просмотреть программу сразу исчезает #18
А вот допустим как сделать так чтобы функции не суммировались,а как толька вызвали функцию сразу n+1,и выводилось количество?обращений.Ну то есть не как тут вывести 11 функций,а кол-во обращений
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 15:00     Не успеваю просмотреть программу сразу исчезает #19
Это без рекурсии делается, а при помощи статической переменной )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2009, 15:19     Не успеваю просмотреть программу сразу исчезает
Еще ссылки по теме:

C++ Окошко для printf/scanf появляется и сразу исчезает
C++ Окно .exe появляется и сразу исчезает
C++ Вылетает программа, не успеваю даже посмотреть что написано

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

Или воспользуйтесь поиском по форуму:
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 15:19  [ТС]     Не успеваю просмотреть программу сразу исчезает #20
Цитата Сообщение от Haster Посмотреть сообщение
Это без рекурсии делается, а при помощи статической переменной )
Ну а как?
Yandex
Объявления
31.03.2009, 15:19     Не успеваю просмотреть программу сразу исчезает
Ответ Создать тему
Опции темы

Текущее время: 06:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru