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

Zwracanie wartosci z funkcji

Ostatnio zmodyfikowano 2015-12-13 13:21
Autor Wiadomość
kigrins
Temat założony przez niniejszego użytkownika
Zwracanie wartosci z funkcji
» 2015-12-13 12:22:17
#include <iostream>
#include <string.h>

 using namespace std;
struct Samochody
{
  char marka[16];
  int data_produkcji;
};
 
Samochody samochod[1];
 
int xxx()
{
  int licznik;
  for(int i=0 ; i<5; i++)
    if( strcmp(samochod.marka,"fiat")==0 )
    licznik++;
    return licznik;
}

int main()
{

Samochody samochod[1];
int licznik;
cout << licznik;

cin >> samochod[0].marka;
cin >> samochod[1].marka;
cin >> samochod[1].data_produkcji;
cin >> samochod[1].data_produkcji;
cout << samochod[1].marka;

licznik = xxx();

cout << licznik;
return 0;  
 
 

}



Cześć, w podanym wyżej kodzie licznik zawsze na końcu wynosi 0 jeśli użyje funkcji xxx, jeśli wplotę ją w int main() to działa poprawnie. Nie mam pomysłu czemu tak się dzieje :(

P-141876
carlosmay
» 2015-12-13 12:31:00
W funkcji 'xxx' zmienna 'licznik' nie ma wartości początkowej.
Inkrementujesz 'śmiecia', po zwróceniu to nadal 'śmieć' powiększony o jeden.

C/C++
Samochody samochod[ 1 ]; // wielkosc tablicy jeden

int xxx()
{
    int licznik; // nie ma wartosci poczatkowej
    for( int i = 0; i < 5; i++ ) // wychodzi poza wymiary tablicy
}
 
P-141877
kigrins
Temat założony przez niniejszego użytkownika
» 2015-12-13 12:35:18
zmieniłem licznik na licznik = 0, dalej to samo :/
pętle też zmieniłem na i<2
P-141878
BezPrzewodowy
» 2015-12-13 12:46:04
C/C++
Samochody samochod[ 1 ]; //tworzysz tablice jednoelementowa


cin >> samochod[ 0 ].marka;
cin >> samochod[ 1 ].marka; //wpisujesz do drugiego elementu tablicy, ktory nie istnieje

P-141879
carlosmay
» 2015-12-13 12:46:28
Napisz konkretnie co chcesz osiągnąć.

Masz dwie deklaracje tej samej tablicy.
Zakrywasz jedną i wpisujesz do niej dane.
Później odkrywasz i porównujesz niewypełnioną tablicę.
To dla tego nie dodaje licznika w funkcji.
Wychodzisz poza zakresy.
No i w 'main()' wprowadzanie danych (wygląda tak jakbyś nie miał pojecia ile elementów ma samochod samochody[1]; .
P-141880
kigrins
Temat założony przez niniejszego użytkownika
» 2015-12-13 13:21:59
Działa! Usunąłem tą niepotrzebną deklaracje int Samochody samochod[1] w int main().
Dziękuję bardzo za pomoc :)
Miłego dnia życzę :)
P-141886
« 1 »
  Strona 1 z 1