[Rozdział 22] Sumowanie tablic w funkcji
Ostatnio zmodyfikowano 2014-11-20 14:18
luuuzik Temat założony przez niniejszego użytkownika |
[Rozdział 22] Sumowanie tablic w funkcji » 2014-11-19 23:45:54 Witam, postanowiłem trochę pobawić się podpunktem pierwszym w zadaniu, a mianowicie: Podać 5 liczb oddzielonych od siebie spacją, od 1 do 100. Program następnie ma zliczyć tylko te liczby które są dwucyfrowe i wypisać wynik. Wszystko ma być oparte na funkcjach. No i mam głupi problem z sumowaniem tylko tych liczb, które są dwucyfrowe... #include <iostream> using namespace std;
int wczytywanie( int t[], int i, int licznik ) { for( i = 0; i < licznik; i++ ) cin >> t[ i ]; }
int wypisywanie( int t[], int i, int licznik ) { for( i = 0; i < licznik; i++ ) cout << t[ i ] << endl; i++; }
int sumowanie( int t[], int i, int licznik ) { int suma = 0; do { if( t[ i ] > 9 && t[ i ] < 100 ) { for( i = 0; i < 5; i++ ) { suma = suma + t[ i ]; } } } while( i == 4 ); return suma; }
int main() { int t[ 5 ], i = 0, licznik = 5, suma; cout << "Podaj piec liczb: " << endl; wczytywanie( t, 0, 5 ); wypisywanie( t, 0, 5 ); sumowanie( t, 0, 5 ); cout << "Suma wynosi : " << suma << endl; return 0; } |
|
Rashmistrz |
» 2014-11-20 14:18:23 zliczyć tylko te liczby które są dwucyfrowe |
Mowa o liczbach naturalnych, więc można zrobić to tak: if( liczba > 9 && liczba < 100 ) //EDIT: Nie w tym problem. Źle skonstruowałeś funkcję "sumowanie". Tam wystarczy jedna pętla i jeden "if", i na dodatek możesz użyć suma += t[ i ]; , zamiast suma = suma + t[ i ]; . Możliwe że to błędnie Ci działa, ponieważ nie rozumiesz jeszcze dokładnie jak działa zagnieżdżanie pętli, a o tym również się dowiesz z następnych lekcji. Nie zapisujesz wartości zwracanej przez funkcję "sumowanie" do zmiennej "suma": suma = sumowanie( t, 0, 5 ); Radziłbym Ci użyć referencji, ale i tak ją poznasz w przyszłości, jeśli dalej będziesz kontynuować kurs. |
|
« 1 » |