Sunteți pe pagina 1din 3

LABORATOR 9

13.04.2020 – 17.04.2020

1. Se citește de la tastatură un număr întreg n, reprezentând lungimea unui vector de elemente


numere întregi. Se cere să se aloce spațiu de memorie pentru vector cu ajutorul funcției malloc și
să se citească și afișeze elementele sale cu ajutorul pointerilor.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i, *v;
printf("n="); scanf("%d", &n);
v = (int*)malloc(n * sizeof (int));

if(!v)
return 1;
for (i = 0; i < n; i++)
{
printf("v[%d] = ", i);
scanf("%d", v + i);
}
for(i = 0; i < n; i++)
printf("%d ", *(v + i));
free(v);
return 0;
}

2. Se citește de la tastatură un număr întreg n, reprezentând lungimea unui vector de elemente


numere întregi. Se cere să se aloce spațiu de memorie pentru vector cu ajutorul funcției calloc și
să se citească elementele sale cu ajutorul pointerilor. Să se ordoneze crescător vectorul
(interschimbarea se face prin accesarea conținutului de la adresă) și să se afișeze noul conținut pe
ecran.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i, j, aux, *v;
printf("n="); scanf("%d", &n);
v = (int*)calloc(n, sizeof(int));
if(!v)
return 1;
for(i = 0; i<n; i++)
{
printf("v[%d] = ", i);
scanf("%d", v + i);
}

for(i = 0; i < n - 1; i++)


for(j = i + 1; j < n; j++)
if(*(v + i) > *(v + j))
{
aux = *(v + i);
*(v + i) = *(v + j);
*(v + j) = aux;
}
for(i = 0; i < n; i++)
printf("%d ", *(v + i));
free(v);
return 0;
}

3. Se citesc de la tastatură valori întregi până la întâlnirea unei valori nenumerice. Să se aloce un
tablou v cu capacitatea inițială de 5 elemente și să se stocheze în tabloul v elementele citite. În
cazul în care capacitatea inițială de 5 este depășită, se va realoca tabloul v la capacitate dublă,
utilizând funcția realloc. Să se afișeze conținutul final al tabloului v.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, x, *v, *w, k = 0, i;
n = 5;
v = (int*)calloc(n, sizeof(int));
if(!v)
return 1;
while(scanf("%d", &x))
{
if(k == n)
{
n = 2 * n;
w = realloc(v, n * sizeof(int));
if(w != NULL)
v = w;
else
return 1;
}
*(v + k) = x;
k++;
}
for(i = 0; i < k; i++)
printf("%d ", *(v + i));
free(v);
return 0;
}

4. Se citește de la tastatură un număr întreg n, reprezentând lungimea unui vector de elemente


numere întregi. Se cere să se aloce spațiu de memorie pentru vector cu ajutorul funcției malloc,
să se citească elementele sale și să se determine și afișeze pe ecran suma lor.
5. Se citește de la tastatură un număr întreg n, reprezentând lungimea unui vector de elemente
numere întregi. Se cere să se aloce spațiu de memorie pentru vector cu ajutorul funcției calloc și
să se citească elementele sale cu ajutorul pointerilor. Să se ordoneze descrescător elementele
situate pe poziții pare (interschimbarea se face prin accesarea conținutului de la adresă) și să se
afișeze noul conținut pe ecran.
6. Se citește de la tastatură un număr întreg n, reprezentând lungimea unui vector de elemente
numere întregi. Se cere să se aloce spațiu de memorie pentru vector cu ajutorul funcției calloc și
să se citească elementele sale cu ajutorul pointerilor. Să se determine maximul și minimul din
vector. În loc de v[i], se va face referire la elementul de pe poziția i prin *(v + i).
7. Se citește de la tastatură un număr întreg n și un vector v de dimensiune n, cu elemente numere
întregi, alocat dinamic. Determinați dacă v este alcătuit doar din elemente de maxim 3 cifre (poate
avea inclusiv elemente de 3 cifre). În caz afirmativ, afișați pe ecran mesajul DA, altfel afișați pe
ecran mesajul NU.

S-ar putea să vă placă și