Zwracanie zmiennej lokalnej w funkcji
Ostatnio zmodyfikowano 2013-10-27 14:39
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 #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; } |
|
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. double srednia() { s = a + b + c; return s; } później w kodzie możesz podstawić rezultat tej funkcji do jakiejś zmiennej: 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. |
|
« 1 » |