View difference between Paste ID: GAeut1iB and DvR26Ua2
SHOW: | | - or go back to the newest paste.
1
#include <stdlib.h>
2
#include <stdio.h>
3
//funkcja *dodatnie czyta liczby z klawiatury, dodatnie dodaje do tablicy a z ujemnych liczy srednia
4
void czytaj_n(int*n);
5
void drukuj_tab(int *t, int n);
6
int *dodatnie(int *n, double *srednia_u);
7
int main()
8
{
9
	int *tab = NULL, n=0,i;
10
	double srednia_u=0;
11
	tab = dodatnie(&n, &srednia_u);
12
	if (tab == NULL)
13
		printf("Nie podano dodatnich wartosci\n");
14
	else
15
	{
16
		printf("tablica %i dodatnich wartosci:\n", n);
17
		drukuj_tab(tab, n);
18
	}
19
	if (srednia_u == 0)
20
		printf("Nie podano ujemnych wartosci\n");
21
	else
22
		printf("srednia z ujemnych wartosci wynosi: %lf\n", srednia_u);
23
	system("pause");
24
}
25
void czytaj_n(int*n)
26
{
27
	scanf_s("%d", n);
28
29
}
30
void drukuj_tab(int *t, int n)
31
{
32
	int i;
33
	for (i = 0; i<n; i++)
34
	{
35
		printf("[%d]=%d\n", i, *(t + i));
36
	}
37
}
38
int *dodatnie(int *n, double *srednia_u)
39
{
40
	int *tab = NULL;
41
	int suma_u = 0;
42
	int n_u = 0, i = 0;
43
	int l;
44
	while (1)
45
	{
46
		czytaj_n(&l);
47
		if (l == 0)
48
			break;
49
		else
50
			if (l > 0)
51
			{
52
				(*n)++;
53
				tab = (int*)realloc(tab, *n * sizeof(int));
54
				*(tab + *n - 1) = l;
55
			}
56
			else
57
			{
58
				n_u++;
59
				suma_u += l;
60
			}
61
	}
62
	if (n_u != 0)
63
		*srednia_u = (double)suma_u / n_u;
64
	else *srednia_u = 0;
65
	return tab;
66
}