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

Рекурсивная функция для вычисления суммы элементов арифметической прогрессии - C++

Восстановить пароль Регистрация
 
LordSilren
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 32
25.12.2012, 17:43     Рекурсивная функция для вычисления суммы элементов арифметической прогрессии #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
#include <stdio.h>
#include <conio.h>
 
int pr(int n, int a1, int d,int sum)
{
if(n==1) return a1;
sum=a1+(n-1)*d+pr(n-1,a1,d);
return sum;
}
 
int main()
{
  int n,a1,d,sum;
    printf("Vvedite kol-vo elementov arifm. progressii \n");
    scanf("%d",&n);
    printf("Vvedite pervij element arifm. progressii \n");
    scanf("%d",&a1);
    printf("Vvedite raznost' elementov arifm. progressii \n");
    scanf("%d",&d);
 pr(n,a1,d,sum);
    printf("Summa elemenov arifm. progressii = %d",sum);
getch();
}
pr: функция не принимает 3 аргументов
в чем ошибка?

Добавлено через 36 минут
p.s так и не нашел ошибку...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2012, 17:43     Рекурсивная функция для вычисления суммы элементов арифметической прогрессии
Посмотрите здесь:

C++ Написать программу для нахождения суммы членов арифметической прогрессии
C++ Вычисления n-го члена арифметической прогрессии
Рекурсивная подпрограмма вычисления суммы элементов массива, состоящего из n элеметов. C++
C++ Рекурсивная функция вычисления суммы бесконечного ряда
C++ Вычисление суммы арифметической прогрессии рекуррентным способом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
25.12.2012, 18:18     Рекурсивная функция для вычисления суммы элементов арифметической прогрессии #2
функция принимает 4, а в этом вызове сколько?
C++
1
pr(n-1,a1,d);
Добавлено через 7 минут
LordSilren, Исправил ваш код:
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
26
#include <stdio.h>
#include <conio.h>
 
int pr(int n, int a1, int d,int& sum)
{
    if(n==1) return a1;
    sum=a1+(n-1)*d+pr(n-1,a1,d, sum);
    return sum;
}
 
int main()
{
    int n,a1,d,sum = 0;
    
    printf("Vvedite kol-vo elementov arifm. progressii \n");
    scanf("%d",&n);
    printf("Vvedite pervij element arifm. progressii \n");
    scanf("%d",&a1);
    printf("Vvedite raznost' elementov arifm. progressii \n");
    scanf("%d",&d);
 
    pr(n,a1,d,sum);
    printf("Summa elemenov arifm. progressii = %d",sum);
 
    getch();
}
LordSilren
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 32
25.12.2012, 18:35  [ТС]     Рекурсивная функция для вычисления суммы элементов арифметической прогрессии #3
SeregaC++, благодарю

Добавлено через 9 минут
еще проблема..если вводить кол-во элементов=1, 1-й элемент=1, а разность=0 он выводит 0..
пытался написать проверку после ввода кол-ва и 1-го элемента,но что-то не получается..
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
25.12.2012, 18:40     Рекурсивная функция для вычисления суммы элементов арифметической прогрессии #4
LordSilren, замените 13-ю строку (int n,a1,d,sum = 0;), на эту: int n,a1,d,sum = 1;
LordSilren
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 32
25.12.2012, 18:44  [ТС]     Рекурсивная функция для вычисления суммы элементов арифметической прогрессии #5
SeregaC++, немного не так,он должен проверить n после его ввода и ввода 1-го элемента,чтоб не вводить разность
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
25.12.2012, 18:50     Рекурсивная функция для вычисления суммы элементов арифметической прогрессии #6
LordSilren, ну так добавьте проверку.
Yandex
Объявления
25.12.2012, 18:50     Рекурсивная функция для вычисления суммы элементов арифметической прогрессии
Ответ Создать тему
Опции темы

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