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

nieoczekiwane wyniki co któreś uruchomienie programu

Ostatnio zmodyfikowano 2018-02-12 19:55
Autor Wiadomość
konishyapl
Temat założony przez niniejszego użytkownika
nieoczekiwane wyniki co któreś uruchomienie programu
» 2018-01-27 22:22:38
Witam, rozwiązuję zadanie domowe z lekcji 33, o treści "Otwórz plik tekstowy, w którym będą znajdowały się tylko liczby całkowite, oddzielone od siebie spacjami. Następnie napisz program, który wczyta wszystkie liczby z pliku i wypisze sumę wszystkich liczb na standardowym wyjściu."

napisałem program który wykonuje to polecenie, problem polega na tym że raz przy uruchomieniu pokazuje sumę prawidłowo, następnym razem ta suma jest mniejsza o 10, a czasami suma wynosi ponad 7kk... gdzie jest błąd ! dziękuję za pomoc.


C/C++
#include <fstream>
#include <iostream>
#include <string>

using namespace std;

bool wczytajPlik( string nazwaPliku, int * tab, int & suma, int & rozmiar )
{
    int i = 0;
    ifstream plik;
    plik.open( nazwaPliku.c_str() );
    if( !plik.good() )
         return false;
   
    // TAKIE LICZBY MAM W PLIKU .TXT
    //110 455 530 580 417 365 568 452 91 98 410 531 596 539 112 304 319 304 503 325 43 187 145 478 58 10 156 260 523 421 449 352 78 567 139 284 521 486 119 491 141 339 39 122 359 501 327 81 342 255
    //SUMA = 15882
    while( plik.good() )
    {
        plik >> tab[ i ];
        cout << tab[ i ] << " ";
        suma += tab[ i ];
        rozmiar++;
        i++;
        if( !plik.good() )
             break;
       
    }
    return true;
}

int main()
{
    int wynik = 0;
    int * tablica;
    int ile = 0;
    tablica = new int[ ile ];
    if( !wczytajPlik( "tekst.txt", tablica, wynik, ile ) )
         cout << "Nie udalo sie otworzyc pliku!" << endl;
   
    cout << endl << "Wynik dodawania licz z pliku to: " << wynik;
    return 0;
}
P-169054
mateczek
» 2018-01-27 22:33:31
C/C++
int ile = 0;
tablica = new int[ ile ]; //pierwszy tu bo tablica zadeklarowana jako pusta!!!
P-169057
pekfos
» 2018-01-27 23:06:02
Po co ci ta tablica? Praktycznie jej nie używasz.
P-169060
konishyapl
Temat założony przez niniejszego użytkownika
» 2018-02-12 19:43:18
z dużym opóźnieniem, ale dzięki za wskazówki, poprawione, tablica wyrzucona, działa dobrze, chociaż nadal jestem bardzo ciekaw dlaczego czasami wynik był dobry a czasami nie? mateczek napisał że tablica była zadeklarowana jako pusta, myślałem że dynamicznie alokując rozmiar tablicy musi to być tak napisane, no i od razu do tej tablicy była wrzuca jakaś wartość z pliku, może ktoś pokazać jak powinno to być napisane przy użyciu tablicy??
P-169381
Monika90
» 2018-02-12 19:55:44
Tam w ogóle nie było deklaracji tablicy, za to było utworzenie dynamicznej tablicy o rozmiarze zero - zmienna ile miała wartość zero w momencie wykonania
new int[ ile ]
. Utworzona tablica miała rozmiar zero i tak już jej zostało, późniejsze zmiany wartości zmiennej ile nie miały znaczenia.
P-169382
« 1 »
  Strona 1 z 1