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

Переполнение стэка при рекурсии - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Список, непонятная ошибка http://www.cyberforum.ru/cpp-beginners/thread319587.html
Всем привет. У меня есть список, вроде все норм, но когда вызываю оператор сложения - run-time error почему-то, если не трудно, укажите где у меня ошибка. #include <iostream> #include <stdexcept> #include <cstdlib> #include <algorithm> using namespace std;
C++ Шахматная доска Даны координаты двух различных полей шахматной доски x1,x2,y1,y2(Целые числа лежащие в диапазоне от 1 до 8). Проверить истинность высказывания Король за один ход может перейти с одного поля на другое. Решать только через бул Всем спасибо заранее http://www.cyberforum.ru/cpp-beginners/thread319557.html
не получается скомпилировать программу в Dev-C++ C++
я написал код ,сто раз перепроверил, но не компилируется! подскажите что в коде неверно, вот код: #include <stdio.h> #include <iostream.h> int main(void) { int x; cout<<"Vvedite x: "; cin>>x;
C++ Поиск ошибки.
Доброго времени суток. С++ изучаю второй день. Вот задание: Определить количество трехзначных натуральных чисел, сумма цифр кото-рых равна n (1 < n < 27). Операции целочисленного деления не использовать. Вот что у меня получилось: #include <stdio.h>
C++ Наличие интернет-соединения http://www.cyberforum.ru/cpp-beginners/thread319537.html
Здравствуйте. Нужно программно проверить есть ли соединение с интернетом. Обычно, это можно сделать так: DWORD flags; flags = INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY; if(!InternetGetConnectedState(&flags, 0)) cout<<"n";
C++ Создать и заполнить массив случайными числами и вычислить сумму его элементов Привет ребята, подскажите как реализовать вот это задание? "используя указатели, нписать следующую программу. программа принимает с клавы размер массива и задает динамический массив этого размера. заполнить массив случайными числами, вывести его на экран и вычислить сумму его элементов.", Оч прошу помочь.. язык Си подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
14.06.2011, 18:32     Переполнение стэка при рекурсии
Ну и вариант с массивом:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
int product(size_t, int*);
 
int main()
{
    int arr[5] = {1, 2, 3, 4, 5};
        
    printf("5! = %d\n", product(5, arr));
    
    exit(0);
}
 
int product(size_t n, int* arr)
{
    if(!n)
    return 1;       /* Тривиальный случай */
 
    return *arr * product(n - 1, arr + 1);
}
Ну и наконец вариант с хвостовой рекурсией:
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>
#include <stdlib.h>
 
int product(size_t, int*);
 
int main()
{
    int arr[5] = {1, 2, 3, 4, 5};
        
    printf("5! = %d\n", product(5, arr));
    
    exit(0);
}
 
static int product1(size_t n, int* arr, int acc)
{
    if(!n)
    return acc;
    return product1(n - 1, arr + 1, acc * *arr);
}
 
int product(size_t n, int* arr)
{
    return product1(n, arr, 1);
}
 
Текущее время: 15:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru