Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zwracanie zmiennej lokalnej w funkcji

Ostatnio zmodyfikowano 2013-10-27 14:39
Autor Wiadomość
DKGPLXD
Temat założony przez niniejszego użytkownika
Zwracanie zmiennej lokalnej w funkcji
» 2013-10-27 14:19:45
Witam. Nie wiem jak zrobic by w funkcji void srednia() zmienna lokalna s byla zwracana. Oto tresc zadania
"Zadanie 1.
Działanie programu:Na prośbę programu użytkownik podaje trzy liczby. Następnie program wyświetla ich
średnią arytmetyczną.
Wymagania: Liczby podane przez użytkownika mają być zapisane do zmiennych globalnych.
Wyliczenie średniej ma się odbywać w funkcji srednia, zwracającej zmienną lokalną s."

oto moj kod

C/C++
#include <iostream>
using namespace std;

int a, b, c;
void wczytaj()
{
    cout << "Podaj pierwsza liczbe: ";
    cin >> a;
    cout << "Podaj druga liczbe: ";
    cin >> b;
    cout << "Podaj trzecia liczbe: ";
    cin >> c;
}
void srednia()
{
    int suma, s;
    suma = a + b + c;
    s = suma / 3;
    cout << "Srednia tych liczb wynosi: " << s << endl;
   
   
}
int main()
{
    wczytaj();
    srednia();
    cin.ignore();
    cin.get();
    return 0;
}
P-94662
kubek3898
» 2013-10-27 14:39:14
Skoro funkcja ma coś zwracać, nie może być typu void. Jeśli chcesz obliczyć średnią, to również złym sposobem jest podawanie wyniku jako int (typ całkowitoliczbowy). Według mnie powinieneś użyć typu double lub float, a później zwrócić tą zmienną słowem kluczowym return.

C/C++
double srednia()
{
    //...
    s = a + b + c;
    return s;
}

później w kodzie możesz podstawić rezultat tej funkcji do jakiejś zmiennej:

C/C++
int main()
{
    double sredniaOcen = srednia();
    cout << "srednia ocen wynosi " << sredniaOcen << endl;
}

A zmienne globalne z tego co wiem są złym nawykiem, odradzanym przez większość programistów.
P-94663
« 1 »
  Strona 1 z 1