Napisz funkcję w C++, która pobiera dwa argumenty typu całkowitego a,b, takie, że a < b, oraz zawraca wartość sumy wszystkich liczb całkowitych z przedziału obustronnie domkniętego <a, b>

Potrzebna nam jest funkcja pobierająca dwa argumenty typu int i zwracająca wynik typu całkowitoliczbowego - może to być int ale zważywszy na to, że wynik może być duży lepiej skorzystać z typu long int.

Prototyp funkcji wygląda tak:

long int sumuj(int a, int b);

Teraz zabieramy się za utworzenie ciała funkcji.

Najpierw musimy sprawdzić czy przekazane argumenty są poprawne, czyli czy zmienna a jest mniejsza od zmiennej b. W przeciwnym razie musimy wyjść z funkcji. Trzeba jednak coś zwrócić - niech będzie to 0.

if ( !(a < b) )
{
return 0;
}

Jeżeli warunek nie jest spełniony (czyli a jest mniejsze od b) możemy zająć się zsumowaniem wszystkich liczb z zakresu obustronnie domkniętego <a, b>, czyli od a do b włącznie:

else
{
long int suma = 0;

for ( int i = a; i <= b; i++ )
{
suma += i;
}

return suma;
}

A oto wykorzystanie funkcji w praktyce:

int a, b;

do {
cout << "Podaj zakres dolny: ";
cin >> a;

cout << "Podaj zakres gorny: ";
cin >> b;
cout << endl;

if ( b <= a )
cout << "Zakres dolny musi byc mniejszy niz gorny!" << endl;

} while ( b <= a );

cout << endl;
cout << "Suma liczb z zakresu " << a << " - " << b << " wynosi ";
cout << sumuj(a, b);

Dodaj swoją odpowiedź