Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Рекурсивный вызов функции main
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Gock Gock вне форума
Member
 
Сообщений: 304
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Регистрация: 28.04.2006
По умолчанию 30.03.2010, 17:30

Цитата:
3.46. Можно ли рекурсивно вызывать функцию main? Напишите программу, содержащую
функцию main. Включите в нее локальную переменную count типа static, задав ей на-
чальное значение 1. Давайте ей приращение и печатайте значение count при каждом
вызове main. Запустите вашу программу. Что произойдет?
Не понимаю, где здесь рекурсивный вызов main() будет?

Написал такой код:
Код:
#include<iostream>
using namespace std;

#include<windows>

int main()
{
   static int count = 1;
   ++count;
   cout << count << endl;

   system("pause");
   return 0;
}
Ответить с цитированием
  (#2 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 30.03.2010, 17:45

Ну, чтобы была рекурсия, надо в самой функции main() сделать вызов самой себя, т.е. что-то типа
Код:
int main()
{
   static int count = 1;
   cout << count << endl;
   ++count;

   main();
   return 0;
}
Но на мой взгляд, это изврат, да и в задании не указано ясно.
Ответить с цитированием
  (#3 (permalink)) Старый
Gock Gock вне форума
Member
 
Сообщений: 304
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Регистрация: 28.04.2006
По умолчанию 04.04.2010, 14:32

Код:
int main()
{
   static int count = 1;
   cout << count << endl;
   ++count;

   main();
   return 0;
}
у меня выдает ошибку
Цитата:
[C++ Error] N3_46_P273_rekursivnij_vizov_main.cpp(12): E2120 Cannot call 'main' from within the program
Цитата:
Но на мой взгляд, это изврат
На мой - тоже =)))
Ответить с цитированием
  (#4 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 04.04.2010, 21:19

Цитата:
у меня выдает ошибку
Ну вот и ответ, рекурсию не сделать с помощью функции main.
Ответить с цитированием
  (#5 (permalink)) Старый
Gock Gock вне форума
Member
 
Сообщений: 304
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Регистрация: 28.04.2006
По умолчанию 05.04.2010, 19:46

Цитата:
Ну вот и ответ, рекурсию не сделать с помощью функции main.
Да уж. Странно, почему в задаче это требовалось.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Angel5a Angel5a вне форума
Member
 
Сообщений: 1,213
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.02.2005
По умолчанию 05.04.2010, 21:35

потому что не в билдере можно было. как сейчас относятся к этому компиляторы, не знаю. gcc думаю позволяет.
Ответить с цитированием
  (#7 (permalink)) Старый
anonymous anonymous вне форума
Member
 
Сообщений: 130
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 31.03.2010
По умолчанию 05.04.2010, 22:56

Цитата:
потому что не в билдере можно было. как сейчас относятся к этому компиляторы, не знаю. gcc думаю позволяет.
позволяет

Код:
[ ~/p/c ] cat rec.c       
#include <stdio.h>

int i = 0;

int main ()
{
    if (i > 10)
        printf( "Done.\n" );
    else {
        printf( "i = %d\n", i );
        i++;
        main();
    }

    return 0;
}
[ ~/p/c ] gcc -o rec rec.c
[ ~/p/c ] ./rec           
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
Done.
[ ~/p/c ] gcc --version
gcc (Gentoo 4.4.3 p1.0) 4.4.3...
Ответить с цитированием
  (#8 (permalink)) Старый
Gock Gock вне форума
Member
 
Сообщений: 304
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Регистрация: 28.04.2006
По умолчанию 08.04.2010, 22:35

Понятно. Спасибо =)
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции по таймеру в с++ Garet Вопросы начинающих программистов 0 21.05.2011 01:33
Вызов функции без параметров alexu C++ Builder 2 30.08.2009 16:57
Вызов vector STL из функции в VC++ 2008 vstrim Visual C++ 5 25.04.2009 14:41
Вызов в несколько потоков функции из Dll Garfish Visual C++ 8 15.08.2008 15:30
Вызов функции с телом на asm DarkStar Assembler 2 22.07.2008 03:20
Вызов функции обработки сообщений S32 Delphi 2 01.05.2008 19:19
VBScript, вызов функции из dll-ки Const3_14 Visual Basic 14 28.12.2007 14:37
Вызов функции по наступлению события ivanok C++ Builder 2 01.11.2005 20:01
Вызов функции из DLL на С++ yaro Java 5 24.07.2005 05:56
Вызов функции Поиск решения из VBA Максимус Visual Basic 2 09.11.2004 18:30
Вызов функции API из mfc-приложения a111 Visual C++ 6 09.11.2004 18:11
Вызов в ручную функции перерисовки SH@DOW Delphi 2 11.01.2003 18:17



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов