Last modified on 7 November 2014, at 20:54

C++ Programming/Exercises/Functions/Pages

EXERCISE 1Edit

Write a program with a function that takes two int parameters, adds them together, then returns the sum. The program should ask the user for two numbers, then call the function with the numbers as arguments, and tell the user the sum.

Solution

Solution #1

#include <iostream>
using namespace std;
 
int AddTwo (int addend1, int addend2)  {
	return addend1 + addend2;
}
 
int main ()  {
	int number1, number2, sum;
 
	cout << "Enter two integers:\n";
	cin >> number1 >> number2;
	sum = AddTwo(number1, number2);
	cout << "\nThe sum is " << sum << ".";
 
 
}

Solution #2

//by blazzer12
//Input two values. Call a function that returns the sum of the values.
 
#include<iostream>
 
using namespace std;
 
int getSum(int, int);
 
int main()
{
	int number1, number2, sum;
 
	//get values
	cout<<"Enter two integers to add"<<endl;
 
	cout<<"Number1 :";
	cin>>number1;
	cout<<"Number2 :";
	cin>>number2;
 
	//call getSum() and store result in sum
	sum = getSum(number1, number2);
 
	//print result
	cout<<number1<<" + "<<number2<<" = "<<sum;
}
 
int getSum(int addend1, int addend2)
{
	return addend1 + addend2;
}

The solution in C.

#include <stdio.h>
 
int add(int, int);
 
int main()
{
        int a, b, sum;
 
        printf("A: ");
        scanf("%d", &a);
 
        printf("B: ");
        scanf("%d", &b);
 
        sum = add(a, b);
 
        printf("The sum of %d and %d is %d.\n", a, b, sum);
 
        return 0;
}
 
int add(int a, int b)
{
        return a + b;
}


// Another solution:
# include <iostream>
 
using namespace std;
 
int sum (int number1, int number2);
 
int number1;
int number2;
 
int main()
{
 
    cout<<"Give me a number amigo: ";
    cin>>number1;
 
    cout<<"Give me another number dude: ";
    cin>>number2;
 
    cout<<"The sum of "<<number1<<" and "<<number2<<" is: "<<sum(number1,number2)<<"."<<endl;
 
    return 0;
 
 
}
 
int sum (int number1, int number2)
{
    return number1+number2;
}
 
// by neuroalchemist


EXERCISE 2Edit

Basically the same as exercise 1, but this time, the function that adds the numbers should be void, and takes a third, pass by reference parameter; then puts the sum in that.

Solution

Solution #1

#include <iostream>
using namespace std;
 
void AddTwo (int addend1, int addend2, int &sum)  {
	sum = addend1 + addend2;
}
 
int main ()  {
	int number1, number2, sum;
 
	cout << "Enter two integers:\n";
	cin >> number1 >> number2;
	AddTwo(number1, number2, sum);
	cout << "\nThe sum is " << sum << ".";
 
	return 0;
}

Solution #2

//by blazzer12
//adds two integers using a "pass by reference" type function call.
 
#include <iostream>
using namespace std;
 
int addNum(int, int, int&);
 
int main()
{
	int number1,number2,sum;
 
	//get values;
	cout<<"Enter two integers to add"<<endl;
 
	cout<<"Enter Number 1: ";
	cin>>number1;
	cout<<"Enter Number 2: ";
	cin>>number2;
 
	//call addNum to add the numbers
	addNum(number1, number2, sum);
 
	//print sum
	cout<<number1<<" + "<<number2<<" = "<<sum;
 return 0;
}
int addNum(int addend1, int addend2, int &sum)
{
	sum = addend1 + addend2;
}

Solution #3

#include<iostream>
 
using namespace std;
 
void add(int,int);
 
int sum=0;
 
int main(){
  cout<<"Please input the first number you wanna add:"<<endl;
  int num1;
  cin>>num1;
  cout<<"Please input the second number you wanna ad"<<endl;
  int num2;
  cin>>num2;
  add(num1,num2);
  cout<<"The sum of these two number:"<<num1<<"&"<<num2<<" is:"<<sum<<endl;
  return 0;
}
 
void add(int a,int b){
  sum=a+b;
}


EXERCISE 3Edit

Write a recursive function that finds the #n integer of the Fibonacci sequence. Then build a minimal program to test it. For reference see Wikipedia:Fibonacci number.

For any possible natural number "n", the following applies
   fib(n+2) = fib(n+1) + fib(n)
Also, the following are predefined
   fib(0) = 0
   fib(1) = 1
Solution

Solution #1

#include <iostream>
 
using namespace std;
 
unsigned fib(unsigned n);
 
int main()
{
    // Printing the first 20 Fibonacci sequence values
    for (unsigned i = 0; i < 20; i++){
        cout << "fib(" << i << ") = " << fib(i) << endl;
    }
}
 
unsigned fib(unsigned n)
{
    if (n < 2)
        return n;
 
    return fib(n-2) + fib(n-1);
}


EXERCISE 4Edit

Basically the same as exercise 3, although this time you mustn't use recursion.

Solution

Solution #1

#include <iostream>
 
using namespace std;
 
unsigned fib(unsigned n);
 
int main()
{
    // Printing the first 20 Fibonacci sequence values
    for (unsigned i = 0; i < 20; i++){
        cout << "fib(" << i << ") = " << fib(i) << endl;
    }
}
 
unsigned fib(unsigned n)
{
    if (n < 2)
        return n;
 
    unsigned prev1 = 0;
    unsigned prev2 = 1;
 
    for (unsigned i = 0; i <= n-2; i++){
        unsigned temp = prev1 + prev2;
        // Just doing a rotation of values, since only the last two are needed
        prev1 = prev2;
        prev2 = temp;
    }
 
    return prev2;
}

For extra exercise, give a big number( like 1000000 ) to both exercise 3 and 4 solutions and compare the execution times. Ponder on the results ;)