Hello all,

I am trying to finish an assignment in my programming class and I can't seem to get this compilation to work... For some strange reason the program will not sum the elements in the array... It is only returning the first input that I enter... Any hints??? I know that a for loop would make more sense, but the assignment asks for recursion to be used...

#include <iostream>

using namespace std;

int arraySum(const int formalAray[], int lower, int upper);

int main()
{
	int list[10];

	cout << "Please enter 10 numbers to calculate their sum... " << endl
		<< endl << endl;

	for(int i = 0; i < 10; i++)
		cin >> list[i];

	cout << endl << endl << "The numbers you entered are: " << endl;

	for(int i = 0; i < 10; i++)
		cout << list[i] << ' ';

	cout << endl << endl;

	cout << "The sum of the ten numbers you entered is: " << arraySum(list, 0, 9) << endl
		<< endl << endl;

	return 0;
}

int arraySum(const int formalArray[], int lower, int upper)
{	
	int sum = 0, temp;

	if(lower == upper)
		return formalArray[lower];
	else
		return sum + arraySum(formalArray, lower + 1, upper);
}

Edited 6 Years Ago by Nick Evan: added code-tags

Hello all,

int arraySum(const int formalArray[], int lower, int upper)
{    
    int sum = 0, temp;
 
    if(lower == upper)
        return formalArray[lower];
    else
        return sum + arraySum(formalArray, lower + 1, upper);
}

Hi dear,

You have written a good code an efficirnt one indeed I just don't get how could you miss the silly mistake.

return sum + arraySum(formalArray, lower + 1, upper);

I don't think

sum

is at all needed. replace it with

formalArray[lower];

that's it. there you go.

Happy coding :)

4 students just copied this code and lost all their points for the assignment.

Out of curiosity... which school did this happen at?

4 students just copied this code and lost all their points for the assignment.

Excellent. More teachers should use google to find ctrl-v-code.

Great, now at least they will learn something from their copied code :)

Edited 6 Years Ago by Ezzaral: n/a

int arraySum(const int formalArray[], int lower, int upper)
{
int sum = 0, temp;
sum+=formalArray[lower];
if(lower >= upper)
return sum;
else
return arraySum(formalArray, lower + 1, upper);
}

try this...

Edited 6 Years Ago by Nick Evan: Added code-tags

This article has been dead for over six months. Start a new discussion instead.