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

Kolejka - pytanie

+1 głos
60 wizyt
pytanie zadane 30 grudnia 2018 w C i C++ przez gorgonek Obywatel (1,220 p.)

Hejka. Mam takie pytanko, czy mogłabym poprosić o sprawdzenie mojego zadanka z kolejki? Nie mam pewności niestety, a nie mam się kogo poradzić.
Treść wygląda następująco:
Napisać funkcję do zadanej struktury realizującą zadanie:
- Wyznaczyć średnią cenę towarów przechodzących przez kasę nr 5. W przypadku braku elementów, należy wyświetlić stosowny komunikat.
Struktura do zadania:
 

typedef struct
{
    int id_towaru, nr_trans, nr_kasy;
    float cena;
    struct tZakup *next;
} tZakup;

typedef tZakup *wZakup;

wZakup poczatek, koniec;


Próba napisania tego wypadła tak, ale nie wiem, czy poprawnie:
 

float Srednia(wZakup *P, tZakup x)
{
    float srednia = 0.f;
    float cena = 0;
    int i = 0;
    while(P!=NULL)
    {
        if(P->x.id_towaru > 0 && P->x.cena >0 && P->x.nr_kasy == 5)
        {
            for(int i=0; i<x.id_towaru; i++ )
            {
                i++;
            }
            P=P->next;
        }
    }
    if(P=NULL)
    {
        printf("Brak elementow!");
        return 0;
    }
    else return srednia/i;
}

Byłabym wdzięczna za pomoc. :)

1 odpowiedź

+2 głosów
odpowiedź 30 grudnia 2018 przez j23 VIP (105,040 p.)
wybrane 30 grudnia 2018 przez gorgonek
 
Najlepsza
float Srednia(tZakup *p)
{
	float cena = 0;
	int i = 0;

	if(p == NULL)
	{
		printf("Brak elementow!");
		return 0;
	}

	while(p)
	{
		if(p->nr_kasy == 5)
		{
			++i;
			cena += p->cena;
		}

		p = p->next;
	}

	return cena / i;
}

 

komentarz 30 grudnia 2018 przez gorgonek Obywatel (1,220 p.)
Bardzo dziękuję za pomoc i zrozumienie :) Teraz wszystko jest jasne. :) Szczęśliwego Nowego Roku! :)
komentarz 30 grudnia 2018 przez mokrowski VIP (108,120 p.)
Chyba lepsze było by Srednia_z_kasy(tZakup * p, unsigned numer_kasy). Nie było by "wbitego na stałe" numeru kasy w kodzie ( 5 ) .

Lepiej także sprawdzić warunek odwrotny "czy p nie jest NULL'em". Kod będzie prostszy w zrozumieniu.

A tak marudzę...

Podobne pytania

0 głosów
1 odpowiedź 64 wizyt
0 głosów
1 odpowiedź 65 wizyt
pytanie zadane 12 lutego w C i C++ przez matiks1991 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 80 wizyt
pytanie zadane 27 listopada 2018 w C i C++ przez Nowicjusz2018 Nowicjusz (240 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

64,913 zapytań

111,382 odpowiedzi

234,401 komentarzy

46,749 pasjonatów

Przeglądających: 103
Pasjonatów: 1 Gości: 102

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...