Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma warning(disable:4996)
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <time.h>
- int *alocare(int n) {
- return (int*)malloc(n * sizeof(int));
- }
- void citire(int *v, int n) {
- for (int i = 0; i < n; i++) {
- printf("v[%d] = ", i);
- scanf("%d", &v[i]);
- }
- }
- void afisare(int *v, int n) {
- for (int i = 0; i < n; i++)
- printf("%d ", v[i]);
- }
- //1.
- void suma(int *v, int n) {
- int s = 0;
- for (int i = 0; i < n; i++)
- s = s + v[i];
- printf("\nSuma elementelor vectorului este: %d", s);
- }
- //2.
- void exista(int *v, int n) {
- int exista, ok = 0;
- printf("\nIntroduceti elementul pe care doriti sa-l cautati in vector: ");
- scanf("%d", &exista);
- for (int i = 0; i < n; i++)
- if (exista == v[i]) {
- ok = 1;
- break;
- }
- if (ok)
- printf("Elementul exista in vector.");
- else
- printf("Elementul nu exista in vector.");
- }
- //3.
- void schimbare(int *v, int n) {
- int poz1, poz2, aux;
- printf("\nIntroduceti pozitia 1: ");
- scanf("%d", &poz1);
- printf("Introduceti pozitia 2: ");
- scanf("%d", &poz2);
- if ((poz1 >= n) || (poz2 >= n))
- printf("Una dintre pozitii depaseste lungimea vectorului.");
- else {
- aux = v[poz1];
- v[poz1] = v[poz2];
- v[poz2] = aux;
- printf("Vectorul cu elementele de pe pozitiile %d si %d inversate este:\n", poz1, poz2);
- afisare(v, n);
- }
- }
- //4.
- void minim(int *v, int n) {
- int minim;
- minim = v[0];
- for (int i = 1; i < n; i++)
- if (v[i] < minim)
- minim = v[i];
- printf("\nValoarea minima din vector este: %d", minim);
- }
- //5.
- void eliminare(int *v, int n) {
- int poz;
- printf("\nIntroduceti pozitia de pe care doriti sa eliminati elementul: ");
- scanf("%d", &poz);
- if (poz >= n)
- printf("Pozitia depaseste lungimea vectorului.");
- else {
- for (int i = poz + 1; i < n; i++)
- v[i - 1] = v[i];
- n--;
- printf("Vectorul dupa eliminarea elementului de pe pozitia %d este:\n", poz);
- afisare(v, n);
- }
- }
- //6.
- void eliminare_nr(int *v, int n) {
- int nr, ok = 0;
- printf("\nIntroduceti elementul pe care doriti sa-l eliminati: ");
- scanf("%d", &nr);
- for (int i = 0; i < n; i++) {
- if (nr == v[i])
- ok = 1;
- if (ok == 1)
- v[i] = v[i + 1];
- }
- if (ok == 0)
- printf("Elementul nu s-a gasit in vector.");
- else {
- n--;
- printf("Vectorul dupa eliminarea elementului %d este:\n", nr);
- afisare(v, n);
- }
- }
- //7.
- void adaugare(int *v, int n) {
- int nr, poz;
- printf("Introduceti pozitia pe care doriti sa introduceti elementul: ");
- scanf("%d", &poz);
- printf("Introduceti elementul: ");
- scanf("%d", &nr);
- if (poz > n)
- printf("Pozitia depaseste numarul de elemente ale vectorului.");
- else {
- n++;
- for (int i = n - 1; i > poz; i--)
- v[i] = v[i - 1];
- v[poz] = nr;
- printf("Vectorul dupa adaugare elementului %d pe pozitia %d este:\n", nr, poz);
- afisare(v, n);
- }
- }
- //8.
- void comparare(int *v, int n) {
- int *v2, *v3, ok = 1;
- v2 = alocare(n);
- v3 = alocare(n);
- printf("Introduceti al doilea vector:\n");
- citire(v2, n);
- printf("Introduceti al treilea vector:\n");
- citire(v3, n);
- printf("Cei 3 vectori sunt:\n");
- afisare(v, n);
- printf("\n");
- afisare(v2, n);
- printf("\n");
- afisare(v3, n);
- for (int i = 0; i < n; i++)
- if (!((v[i] < v2[i]) && (v2[i] < v3[i])))
- ok = 0;
- if (ok)
- printf("\nCei 3 vectori au v[i]<v2[i]<v3[i]");
- else
- printf("\nCei 3 vectori nu au v[i]<v2[i]<v3[i]");
- }
- //9.
- void sortare(int *v, int n) {
- for (int i = 0; i < n - 1; i++)
- for (int j = i + 1; j < n; j++)
- if (v[i] > v[j]) {
- int aux;
- aux = v[i];
- v[i] = v[j];
- v[j] = aux;
- }
- printf("\nVectorul sortat este:\n");
- afisare(v, n);
- }
- //10.
- void inserare_element(int *v, int n) {
- int el;
- printf("\nIntroduceti elementul: ");
- scanf("%d", &el);
- n++;
- if (el > v[n - 2])
- v[n - 1] = el;
- else {
- int i = 0;
- while (v[i] < el)
- i++;
- for (int j = n - 1; j > i; j--)
- v[j] = v[j - 1];
- v[i] = el;
- }
- printf("Vectorul rezultat este:\n");
- afisare(v, n);
- }
- //11.
- void generare_aleator() {
- int n = 101;
- time_t t;
- srand((unsigned)(time(&t)));
- int g = rand() % n;
- printf("Numarul aleator generat este: %d", g);
- }
- //12.
- void generare50() {
- int n = 2;
- time_t t;
- srand((unsigned)(time(&t)));
- int g = rand() % n;
- if (g == 0)
- printf("Inteligenta Artificiala");
- else
- printf("Limbajul C");
- }
- //13.
- void generare33() {
- int n = 3;
- time_t t;
- srand((unsigned)(time(&t)));
- int g = rand() % n;
- if (g == 0)
- printf("Inteligenta Artificiala");
- else
- if (g == 1)
- printf("Limbajul C");
- else
- if (g == 2)
- printf("Programare Web");
- }
- //14.
- void vector_aleator(int *v, int n) {
- int m, *aux;
- time_t t;
- srand((unsigned)(time(&t)));
- printf("\nIntroduceti cate numere doriti sa generati aleatoriu: ");
- scanf("%d", &m);
- aux = alocare(m);
- if (m > n)
- printf("m>n");
- else
- for (int i = 0; i < m; i++) {
- int g = rand() % n;
- aux[i] = v[g];
- }
- printf("Vectorul rezultat este:");
- afisare(aux, m);
- int max = aux[0];
- for (int i = 1; i < m; i++)
- if (aux[i] > max)
- max = aux[i];
- printf("\nElementul maxim este: %d", max);
- }
- //15.
- void vector_aleator2(int *v, int n) {
- int m, *aux;
- time_t t;
- srand((unsigned)(time(&t)));
- printf("\nIntroduceti cate numere doriti sa generati aleatoriu: ");
- scanf("%d", &m);
- aux = alocare(m);
- if (m > n)
- printf("m>n");
- else {
- for (int i = 0; i < m; i++) {
- int g = rand() % n;
- aux[i] = v[g];
- for (int j = g + 1; j < n; j++)
- v[j - 1] = v[j];
- n--;
- }
- printf("Vectorul rezultat este:");
- afisare(aux, m);
- }
- }
- //16.
- void auxiliar(int *v, int n, int punct, int *v2, int *a) {
- int aux = punct;
- for (int i = punct; i < n; i++) {
- int ok = 1;
- for (int j = 0; j < punct; j++)
- if (v[j] == v2[i])
- ok = 0;
- if (ok)
- a[aux++] = v2[i];
- }
- for (int i = 0; i < punct; i++)
- a[aux++] = v2[i];
- for (int i = 0; i < aux; i++)
- printf("%d ", a[i]);
- printf("\n");
- }
- void taiere(int *v, int n) {
- int punct, *v2, *a, *b;
- v2 = alocare(n);
- a = alocare(n);
- b = alocare(n);
- printf("\nIntroduceti cel de-al doilea vector:\n");
- citire(v2, n);
- printf("Cei doi vectori sunt:\n");
- afisare(v, n);
- printf("\n");
- afisare(v2, n);
- printf("\nIntroduceti punctul de taiere: ");
- scanf("%d", &punct);
- for (int i = 0; i < punct; i++) {
- a[i] = v[i];
- b[i] = v2[i];
- }
- auxiliar(v, n, punct, v2, a);
- auxiliar(v2, n, punct, v, b);
- }
- //17.
- void penultima() {
- char mat[3][3];
- mat[0][0] = '2';
- mat[0][1] = '3';
- mat[0][2] = '5';
- mat[1][0] = '4';
- mat[1][1] = ' ';
- mat[1][2] = '1';
- mat[2][0] = '8';
- mat[2][1] = '6';
- mat[2][2] = '7';
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++)
- printf("%c ", mat[i][j]);
- printf("\n");
- }
- time_t t;
- srand((unsigned)(time(&t)));
- int g = rand() % 4;
- printf("\n");
- if (g == 0) {
- mat[1][1] = '3';
- mat[0][1] = ' ';
- }
- if (g == 1) {
- mat[1][1] = '4';
- mat[1][0] = ' ';
- }
- if (g == 2) {
- mat[1][1] = '1';
- mat[1][2] = ' ';
- }
- if (g == 3) {
- mat[1][1] = '6';
- mat[2][1] = ' ';
- }
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++)
- printf("%c ", mat[i][j]);
- printf("\n");
- }
- }
- //18.
- void ultima() {
- int mat[3][3];
- int xo = 1;
- int conditie = 0;
- for (int i = 0; i < 3; i++)
- for (int j = 0; j < 3; j++)
- mat[i][j] = -1;
- time_t t;
- srand((unsigned)(time(&t)));
- int g = rand() % 9;
- while (conditie) {
- while (mat[g / 3][g % 3] != -1) {
- g = rand() % 9;
- }
- if ((mat[g / 3][g % 3] == -1) && (xo == 1)) {
- mat[g / 3][g % 3] = xo;
- xo = 0;
- }
- else
- if ((mat[g / 3][g % 3] == -1) && (xo == 0)) {
- mat[g / 3][g % 3] = xo;
- xo = 1;
- }
- }
- }
- void main() {
- int *v, n;
- /* printf("Introduceti numarul de elemente: ");
- scanf("%d", &n);
- v = alocare(n);
- citire(v, n);
- afisare(v, n);
- suma(v, n);
- exista(v, n);
- schimbare(v, n);
- minim(v, n);
- eliminare(v, n);
- eliminare_nr(v, n);
- adaugare(v, n);
- comparare(v, n);
- sortare(v, n);
- inserare_element(v, n);
- generare_aleator();
- generare50();
- generare33();
- vector_aleator2(v, n);
- taiere(v, n);
- penultima();*/
- ultima();
- _getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement