Pętla for nie działa przy pewnych wartościach
Ostatnio zmodyfikowano 2015-10-03 17:45
nomiris Temat założony przez niniejszego użytkownika |
Pętla for nie działa przy pewnych wartościach » 2015-10-03 17:19:14 Witam mam problem ponieważ pętla for nie działa mi dla niektórych wartości np 1,2,6 ale np jeśli pętli nadam wartość np 10 działa bez problemu. Problem polega na tym że chce policzyć średnią czyli muszę zliczyć wyniki a właśnie nie zawsze działa. Program pisze na klasach ponieważ chciałem się tych klas trochę nauczyć niżej wstawiam kod, program ma służyć ogólnie do liczenia niepewności standardowej: Main: #include <iostream> #include "dzialania.h" using namespace std;
int main() { int wybor; cout << "Wybierz dzialanie ktore chcesz wykonac: " << endl; cout << "1. Niepewnosc standardowa; " << endl; cout << "2. Porownywanie liczb; " << endl; cout << "3. Costam Costam." << endl; cin >> wybor; cout << endl; switch( wybor ) { case 1: niepewnosc_standardowa n1; n1.podaj_pomiary(); break; case 2: break; case 3: break; default: break; } return 0; }
Biblioteka klasy: #include <iostream> using namespace std;
class niepewnosc_standardowa { public: float ilosc_pomiarow; float pomiary[ 50 ]; float wynik; float srednia; int numer_pomiaru; float ilosc_pomiarow2; void podaj_pomiary(); };
Klasa(tu jest pętla): #include <iostream> #include "dzialania.h"
using namespace std;
void niepewnosc_standardowa::podaj_pomiary() { cin.sync(); cout << "Podaj ilosc pomiarow: " << endl; cin >> ilosc_pomiarow; ilosc_pomiarow2 = ilosc_pomiarow; numer_pomiaru = 0; srednia = 0; while( ilosc_pomiarow >= 1 ) { cout << "Podaj " << numer_pomiaru + 1 << " pomiar: "; cin >> pomiary[ numer_pomiaru ]; numer_pomiaru++; ilosc_pomiarow--; } for( int i = 0; i <= ilosc_pomiarow2; i++ ) srednia = pomiary[ i ] + srednia; cout << srednia << endl; }
|
|
Monika90 |
» 2015-10-03 17:35:44 for( int i = 0; i <= ilosc_pomiarow2; i++ ) srednia = pomiary[ i ] + srednia;
Zły operator, powinno być i < ilosc_pomiarow2Zmienna ilosc_pomiarow2 raczej nie powinna być typu float skoro przechowuje ilość pomiarów. |
|
nomiris Temat założony przez niniejszego użytkownika |
» 2015-10-03 17:45:46 Dziękuje działa :D jest float ponieważ wynik dzielenia żeby uzyskać srednią, która nie będzie liczbą naturalną. Dziękuje za pomoc :D |
|
« 1 » |