#include <stdio.h>
#include <stdlib.h>
int read_vector_float(float *vec, int size, float stop_value)
{
int zmienna = 0;
float n = 0;
if(size <= 0)
{
return -1;
}
do
{
if(scanf("%f", &n) != 1)
{
return -2;
}
if(n == stop_value)
{
break;
}
else
{
*vec = n;
zmienna++;
}
}
while(zmienna < size);
return zmienna;
}
int main()
{
float tab[101] = {0};
float *ptab = tab;
int size = 0;
float srednia = 0;
float *psrednia = &srednia;
printf("Wpisz liczby: ");
size = read_vector_float(ptab, 101, 0);
float srednia = 0;
for(int i = 0; i <= size; i++)
{
srednia = srednia + *(tab + i);
}
printf("%f", srednia);
float srednia = 0;
for(int i = 0; i <= size; i++)
{
srednia = srednia + *(tab + i);
}
printf(" %f", srednia/size);
return 0;
}
Funkcja read vector pobiera od użytkownika ciąg liczb i zwraca ilość pobranych liczb. Mój problem polega na tym że nie wiem dlaczego program zamiast zsumować liczby to wypisuje pierwszą podaną liczbę przez co zamiast średniej jest wypisana ta liczba podzielona przez ilość pobranych liczb. Zatem gdzie tkwi błąd przy sumowaniu?