• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Struktury danych w C jako paramter funkcji

Object Storage Arubacloud
+1 głos
203 wizyt
pytanie zadane 14 stycznia 2021 w C i C++ przez szylvvia Początkujący (300 p.)

Hejka, jestem początkująca w C. Realizujemy teraz temat o strukturach danych. Musze przerobić kod w main na osobne funkcje. Czy ktoś byłby w stanie wytłumaczyć mi jak wywołać funkcję ze strukturą danych. Dodam jeszcze ze moja struktura danych jest zadeklarowana jako tablica.

    struct pracownik tablica[n];
    float zarobki[n];
    
    int i;
    for (i=0;i<n;i++)
    {
        printf("Pracownik %d\n",i+1);
        tablica[i]=wczytaj();
        zarobki[i]=placa(tablica[i]);
    }

 

 

1 odpowiedź

+2 głosów
odpowiedź 14 stycznia 2021 przez tangarr Mędrzec (154,780 p.)

Przeanalizuj przykład

struct kwadrat {
    float dlugosc_boku;
};

int funkcja1(struct kwadrat k) {
    // k jest kopią przekazanego argmentu
    return k.dlugosc_boku;
}

int funkcja2(struct kwadrat *k) {
    // k jest wskaźnikiem na przekazany argument
    return k->dlugosc_boku;
}

int main() {
    struct kwadrat k;
    k.dlugosc_boku = 1;
    int x = funkcja1(k);
    int y = funkcja2(&k);
}

 

komentarz 14 stycznia 2021 przez szylvvia Początkujący (300 p.)
edycja 14 stycznia 2021 przez szylvvia
main()
{
	uzupelnij(zarobki,n,tablica);	

}


float placa(float zarobki, int n,struct pracownik p)
{    
        return p.godziny*p.stawka*(1+p.premia);
}


void uzupelnij(float zarobki, int n, struct pracownik tablica(n))
{
	int i;
	for (i=0;i<n;i++)
	{
		printf("Pracownik %d\n",i+1);
		tablica[i]=wczytaj();
		zarobki[i]=placa(tablica[i]);
	}
}

Mimo wszystko wyrzuca wiele błedów

komentarz 14 stycznia 2021 przez tangarr Mędrzec (154,780 p.)
wiele wszystko?
komentarz 14 stycznia 2021 przez szylvvia Początkujący (300 p.)
Wiele błedów, sorki przez nieuwagę
komentarz 15 stycznia 2021 przez j23 Mędrzec (194,920 p.)
void uzupelnij(float zarobki, int n, struct pracownik tablica(n))

Daj:

void uzupelnij(float *zarobki, int n, struct pracownik *tablica)

 

komentarz 15 stycznia 2021 przez tangarr Mędrzec (154,780 p.)
1. Funkcja uzupelnij jest nieznana w funkcji main (musi być zdefiniowana lub zadeklarowana przed funkcją main)
2. Funkcja main nie zna zmiennych zarobki, n, tablica
3. Funkcja wczytaj jest niezdefiniowana

Podobne pytania

+1 głos
2 odpowiedzi 311 wizyt
pytanie zadane 10 marca 2021 w C i C++ przez huberos23 Nowicjusz (170 p.)
0 głosów
1 odpowiedź 195 wizyt
pytanie zadane 15 stycznia 2021 w C i C++ przez Taachii Początkujący (330 p.)
0 głosów
2 odpowiedzi 374 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...