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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
#1

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

31.03.2009, 14:26. Просмотров 1783. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не успеваю просмотреть программу сразу исчезает (C++):

Окно .exe появляется и сразу исчезает - C++
Здравствуйте, не могу её по завершению остановить, пробовал с getch() system(&quot;pause&quot;) VS2010 #include &lt;math.h&gt; #include &lt;stdio.h&gt; ...

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

Компилить программу сразу из CMD - C++
Приветствую. У меня такая задача, собрать необходимую библиотеку для С++, которая бы позволила компилить программу сразу из CMD при...

Не успеваю сделать лабораторку по С - C++
Мне нужно сдать лабораторные по проге в понедельник, все задачи сделать не успеваю, по этому прошу чтобы вы мне помогли с ними. 1.Дана...

C++ почему прога вылетает, не успеваю посмотреть действие - C++
дан массив строк, если какая либо строка заканчивается буквой k, то удалить эту строку, вод что я написал: #include &lt;iostream.h&gt; ...

Вылетает программа, не успеваю даже посмотреть что написано - C++
Собственно программа просто вылетает с ошибкой 0. Я не успеваю даже посмотреть что написано. Подскажите пожалуйста. #include...

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

Добавлено через 39 секунд
Цитата Сообщение от Haster Посмотреть сообщение
Так что у тебя программа должна делать?
Задача такая сосчитать количество обращений к функции,то есть кол-во обращений к ней,
0
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 и получается бесконечный цикл
Убери точку с запятой
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
31.03.2009, 14:41 #8
Какая фиг разница.
Да потому что у тебя либо бесконечный цикл в твоей проге (тогда она висит), либо бесконечная рекурсия, которая валится в segmentation fault и прога вываливается.

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

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

Добавлено через 1 минуту 26 секунд
Потому-что у тебя нет выхода и рекурсии....
0
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
31.03.2009, 14:52  [ТС] #14
Цитата Сообщение от Haster Посмотреть сообщение
Потому-что у тебя нет выхода и рекурсии...
А как из такой рекурсии сделать Выход?
0
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);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2009, 14:53
Привет! Вот еще темы с ответами:

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

.NET 4.x Контекстное меню появляется и сразу исчезает - C# WPF
Всем привет. Надо мне тут реализовать отображение контекстного меню при клике мышкой по картинке. Вариант нашел вроде-бы рабочий, но в...

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

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


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

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

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