Cześć, byłabym wdzięczna za każdą pomoc.
Mam stworzyć tablice statyczną wypełnioną losowymi liczbami 1-100
Policzyć ile jest w niej liczb z przedziału od a do b
Następnie tymi liczbami z przedziału wypełnić nowo utworzoną tablicę dynamiczną.
To wszystko ma być za pomocą funkcji. O ile poradziłam sobie z tą tablicą statyczną, wypełnieniem i policzeniem tych liczb tak nie wiem jak zrobić działającą funkcję która tymi liczbami wypełni nową tablice dynamiczną. Ponadto ta funkcja ma być postaci wskaźnik do tablicy statycznej tabS, liczba jej elementów n, przedziały a i b, wskaźnik do liczby elementów tablicy dynamicznej m; funkcja zwraca wskaźnik do tablicy dynamicznej).
#include <stdio.h>
#include <stdlib.h>
void losuj(int *tab, int x);
int licz(int tab[], int x, int a, int b);
int *nowa(int tabS[], int n, int m, int a, int b);
int main(int argc, char *argv[]) {
int x =100;
int tabS[x];
int a =22;
int b =55;
int m = 0;
int i;
int *nowaTD;
losuj(&tabS,x);
for(i=0;i<x;i++)
{
printf("%d ",tabS[i]);
}
for(i=0;i<x;i++)
{
if(tabS[i]>=a && tabS[i]<=b) m++;
}
//printf("\n%d", m);
printf("\n\n");
nowaTD = nowa(tabS,x,m,a,b);
wyswietl(nowaTD,m);
return 0;
}
//printf("\n%d", m);
printf("\n\n");
nowaTD = nowa(tabS,x,m,a,b);
wyswietl(nowaTD,m);
return 0;
}
void wyswietl(int *tab,int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d\t",*tab);
tab++;
}
}
void losuj(int *tab, int x)
{
int i;
for(i=0;i<x;i++)
{
*tab = 1 + rand() % 100;
tab++;
}
}
int *nowa(int *tabS, int n, int m, int a, int b)
{
int *td = (int*)malloc(m*sizeof(int));
if (td==NULL)
{
printf("Blad");
exit(EXIT_FAILURE);
}
int i,k;
for(i=0;i<n;i++)
{
if( *(tabS+i) >= a && *(tabS+i) <= b )
{
td=&tabS;
td++;
}
tabS++;
}
return td;
}
Wiem, że ta funkcja póki co jest nie taka jak w poleceniu, ale próbowałam, żeby ona cokolwiek wypisywała, chociaż widzę, ze nie jest to czego oczekują w zadaniu.