Să se scrie o aplicaţie C în care se generează aleator 20 de numere întregi cu valori mai mici
decât 50 (Folositi srand(), rand() si operatorul %). Să se scrie o funcţie care elimină din tabloul
unidimensional creat numerele impare, returnand noul tablou. Funcţia va utiliza pointeri. Afişati în
main( ) tabloul iniţial şi cel obţinut după eliminarea elementelor impare.
Răspunsuri la întrebare
Cod:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void eliminare_impare(int *tablou, int *lungime)
{
int i, j;
for (i = 0, j = 0; i < *lungime; i++)
{
if (tablou[i] % 2 == 0)
{
tablou[j] = tablou[i];
j++;
}
}
*lungime = j;
}
int main(void)
{
int tablou[20], i, lungime = 20;
srand(time(NULL));
printf("Tabloul initial:\n");
for (i = 0; i < lungime; i++)
{
tablou[i] = rand() % 50;
printf("%d ", tablou[i]);
}
eliminare_impare(tablou, &lungime);
printf("\n\nTabloul dupa eliminarea numerelor impare:\n");
for (i = 0; i < lungime; i++)
printf("%d ", tablou[i]);
return 0;
}
Output :
Tabloul initial:
16 38 47 45 30 46 44 1 24 2 46 37 45 36 14 24 37 32 1 9
Tabloul dupa eliminarea numerelor impare:
16 38 30 46 44 24 2 46 36 14 24 32
Am folosit un compiler online de C