Hejka. :)
Chciałabym się Was poradzić, jak można w tym kodzie źródłowym zrobić średnią arytmetyczną? Wydaje mi się, że nie do końca kumam jak to zrobić. Czy mogłabym poprosić o sprawdzenie i wytłumaczenie co jest nie tak? Byłabym bardzo wdzięczna. :)
Kod C:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char nazwisko[20], imie[20];
int rok_ur;
float srednia;
}TDane;
typedef struct
{
TDane d;
struct TElement* next;
}TElement;
typedef TElement* TWsk;
int main()
{
TWsk P;
TDane x;
P=NULL;
WprowadzDane(&P);
printf("Wprowadzone dane to: \n");
UsunStos(&P);
return 0;
}
int WprowadzStudenta(TDane *x)
{
printf("Podaj nazwisko: ");
scanf("%s", x->nazwisko);
printf("Podaj imie: ");
scanf("%s", x->imie);
printf("Podaj rok urodzenia: ");
scanf("%d", &x->rok_ur);
printf("Podaj srednia: ");
scanf("%f", &x->srednia);
return 0;
}
int WyswietlStudenta(TDane x)
{
printf("%s %s %d %4.2f \n", x.nazwisko, x.imie, x.rok_ur, x.srednia);
return 0;
}
int NaStos(TWsk *P, TDane x)
{
TWsk Q;
Q = (TElement*)malloc(sizeof(TElement));
Q->d=x;
Q->next=(*P);
(*P) = Q;
return 0;
}
int ZeStosu(TWsk *P, TDane *x)
{
TWsk Q;
if(P!=NULL)
{
Q=(*P);
*x=Q->d;
*P=Q->next;
free(Q);
}
return 0;
}
int WprowadzDane(TWsk *P)
{
int n, i;
TDane x;
printf("Dane ilu osob chcesz wprowadzic?: ");
scanf("%d", &n);
for(i=1; i<=n; i++)
{
printf("%d osoba", i);
WprowadzStudenta(&x);
NaStos(&(*P), x);
}
return 0;
}
int UsunStos(TWsk *P)
{
TDane x;
while((*P)!=NULL)
{
ZeStosu(&(*P), &x);
WyswietlStudenta(x);
}
return 0;
}
int WyswietlStos(TWsk P)
{
while(P!=NULL)
{
WyswietlStudenta(P->d);
P=P->next;
}
return 0;
}
float srednia(TWsk *P, TDane x)
{
float n;
printf("Srednia to: %1f", (x.srednia)/n);
return 0;
}