Funkcja sredniej ze wskaznikowi i tablic

0

Witam
Proszę o pomoc jak napisać funkcję zliczania średniej z wieku do :

void pracownik (typElem **poczatek)
{
char nazwwe[DL_NAZW+1]; //nazwisko odczytane z wej
*poczatek = NULL; //na poczatku lista pusta
typElem *tmp; // na zmiane wskaznikow

while (1) // petla niby nieskonczona
	{
	printf("\nnazwisko: ");
	gets(nazwwe);
	if (strlen(nazwwe)) //gdy nazwisko niepuste
	{
		tmp= (typElem *)malloc(sizeof(typElem));
			if(tmp==NULL){puts("Brak pamieci"); exit(-1);}
			strcpy(tmp->nazw, nazwwe);
			printf("imie: ");
			scanf("%s", tmp->imie);
			printf("wiek: ");
			scanf("%d", &tmp->wiek);
			printf("nr stanowiska: ");
			scanf("%d", &tmp->indeks);
			fflush(stdin); // usuń pozostałe znaki z bufora
			tmp->nast = *poczatek; // ustaw wartosc nastepnika
			*poczatek = tmp; // wskaznik na nowy element
			}
			else break; // wyjscie z petli gdy nazwisko nie zostanie podane
	}
}

To jest moja próba zrobiona na sumę, lecz nie działa;

int srednia()
{
int suma = 0;
typElem *tmp = poczatek;
while(&tmp->wiek !=NULL)
{
suma += tmp->wiek;
tmp= tmp-> nast;
}
return suma;
}
0
while(&tmp->wiek !=NULL)

Tu to chyba ma być tmp->nast? Tu to chyba ma być while(tmp != NULL)? Przechodzisz przecież po kolejnych elementach listy aż osiągniesz koniec. Wskaźnik na NULL oznacza właśnie koniec.

0

ale nadal program się sypie czegoś, aha wcześniej był błąd niezadeklarowania "poczatek"

Jeżeli wpisuje tak:
int srednia()
{
int suma = 0;
typElem *tmp = poczatek;
while(tmp !=NULL)
{
suma += tmp->wiek;
tmp= tmp-> nast;
}
return suma;
}

to program chce zadeklarowania poczatkek

1 użytkowników online, w tym zalogowanych: 0, gości: 1