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

Pętla for nie działa przy pewnych wartościach

Ostatnio zmodyfikowano 2015-10-03 17:45
Autor Wiadomość
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:
C/C++
#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:
C/C++
#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):
C/C++
#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++ ) // <------ to ta pętla nie działa zawsze
         srednia = pomiary[ i ] + srednia;
   
    cout << srednia << endl;
}
P-138132
Monika90
» 2015-10-03 17:35:44
C/C++
for( int i = 0; i <= ilosc_pomiarow2; i++ ) // <------ to ta pętla nie działa zawsze
     srednia = pomiary[ i ] + srednia;

Zły operator, powinno być i < ilosc_pomiarow2

Zmienna ilosc_pomiarow2 raczej nie powinna być typu float skoro przechowuje ilość pomiarów.
P-138133
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
P-138134
« 1 »
  Strona 1 z 1