Sunday, March 27, 2016

26) Subprogram - Sortarea prin Insertie

void sortare_insertie(float *v, int n) {
    float aux;
    int i,j;
    for(i=0;i<n;i++)
    if(v[i]<v[i-1]) {
        aux = v[i];
        j=i-1;
        while((j>=0) && (v[j]>aux)) {
            v[j+1]=v[j];
            j=j-1;
        }
        v[j+1]=aux;
    }
}

Saturday, March 12, 2016

25) Functia Hermite recursiv

#include <stdio.h>
#include <stdlib.h>

long Hermite(int n, int x){
    if(n==0) {
        return 1;
    }
    else if(n=1) {
        return 2*x;
    }
    else {
        return 2*n*Hermite(n-1,x)-2*(n-1)*Hermite(n-2,x);
    }

}

void main(){
    int n,x;
    long polH;
    printf("Gradul polinomului = "); scanf("%d", &n);
    printf("x= ", &x); scanf("%d", &x);
    polH = Hermite(n,x);
    printf("Rezultatul este: %ld", polH);
}

24) Functia Ackermann recursiv


#include <stdio.h>
#include <stdlib.h>

int Ackermann(int m, int n) {
    if(m==0) {
        return n+1;
    }
    else if((n=0)&&(m>0)) {
        return Ackermann(m-1,1);
    }
    else if((m>0)&&(n>0)) {
        return Ackermann(m-1, Ackermann(m,n-1));
    }
}

void main(){
    long result;
    int m,n;
    printf("m: "); scanf("%d", &m);
    printf("n: ");scanf("%d", &n);
    result=Ackermann(m,n);
    printf("Rezultatul functie Ackermann este: %d", result);

}

Sunday, March 6, 2016

23) Ridicarea unei matrice la o putere data - alocare dinamica


#include <stdio.h>
#include <stdlib.h>

void citireMatrice(int ***a, int *n) {
    int i,j;
    printf("Numarul de linii & coloane: "); scanf("%d", &(*n));
    (*a) = (int**)malloc((*n)*sizeof(int));
    for(i=0;i<(*n);i++) {
        (*a)[i] = (int*)malloc((*n)*sizeof(int));
    }
    for(i=0;i<*n;i++) {
        for(j=0;j<*n;j++) {
            printf("a[%d][%d] = ",i,j); scanf("%d", &(*a)[i][j]);
        }
    }
}

void afisareMatrice(int **a, int n) {
    int i,j;
    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
            printf(" %d ", a[i][j]);
        }
        puts(" ");
    }

}



void putere(int **a, int ***b, int ***c, int n, int p) {
    int i,j,q,k;

    //alocare dinamica pentru matricele B si C
    (*b) = (int**)malloc(n*sizeof(int));
    for(i=0;i<n;i++) {
        (*b)[i] = (int*)malloc(n*sizeof(int));
    }

    (*c) = (int**)malloc((n)*sizeof(int));
    for(i=0;i<n;i++) {
        (*c)[i] = (int*)malloc((n)*sizeof(int));
    }



     //generarea matricei unitate de ordin n
    for(i=0;i<n;i++)
        for(j=0;j<n;j++) {
            (*b)[i][j]=(i==j);
    }


    for(q=0;q<p;q++) {
        for(i=0;i<n;i++)
            for(j=0;j<n;j++) {
                (*c)[i][j]=0;
                for(k=0;k<n;k++)
                    (*c)[i][j] = (*c)[i][j]+(*b)[i][k]*a[k][j];
            }
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                (*b)[i][j]=(*c)[i][j];
    }


    //afisarea matricei rezultate
    printf("Matricea ridicata la puterea %d este: \n", p);
    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
            printf(" %d ", (*b)[i][j]);
        }
        puts(" ");
    }





}

void eliberare(int **a, int **b, int **c, int n) {
    int i;
    for(i=0;i<n;i++) {
        free(a[i]);
    }
    free(a);

    for(i=0;i<n;i++) {
        free(b[i]);
    }
    free(b);

    for(i=0;i<n;i++) {
        free(c[i]);
    }
    free(c);

}

void main(){
    int **a, **b, **c;
    int i,j,n,p;
    citireMatrice(&a,&n);
    afisareMatrice(a,n);
    printf("Puterea este: "); scanf("%d", &p);
    putere(a,&b,&c,n,p);


    eliberare(a,b,c,n);

}



22) Ridicarea unei matrice la o putere data


#include <stdio.h>
#include <stdlib.h>

void citireMatrice(int a[20][20], int *n) {
    int i,j;
    printf("Numarul de linii & coloane: "); scanf("%d", &(*n));
    for(i=0;i<*n;i++) {
        for(j=0;j<*n;j++) {
            printf("a[%d][%d] = ", i,j);
            scanf("%d", &a[i][j]);
        }
    }

}

void afisareMatrice(int a[20][20], int n) {
    int i,j;
    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
            printf(" %d ", a[i][j]);
        }
        puts(" ");
    }

}

void putereMatrice(int a[20][20], int n, int p) {
    //   <!--- generarea matricei unitate--->
    int i,j,q,k,c[20][20];
    int b[20][20];
    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
            b[i][j]=(i==j);
        }
    } // <!--- generarea matricei unitate--->

    puts("Afisarea matricei unitate...");
    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
            printf(" %d ",b[i][j]);
        }
        puts(" ");
    }


    for(q=0;q<p;q++) {
        for(i=0;i<n;i++)
            for(j=0;j<n;j++) {
                c[i][j]=0;
                for(k=0;k<n;k++)
                    c[i][j] = c[i][j]+b[i][k]*a[k][j];
            }
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                b[i][j]=c[i][j];
    }

    printf("Afisarea matricea ridicata la puterea %d \n", p);
    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
            printf(" %d ",b[i][j]);
        }
        puts(" ");
    }

}


void main(){
    int a[20][20];
    int i,j,n,p;
    citireMatrice(a,&n);
    afisareMatrice(a,n);
    printf("Puterea este: "); scanf("%d", &p);
    putereMatrice(a,n,p);
}






Saturday, January 9, 2016

21) Transformarea unei matrice triunghiulara inferior intr-una triunghiulara superior

//o matrice este triunghiular inferioara daca toate elementele de sub diagonala principala sunt egale cu 0

  


#include <stdio.h>
#include <stdlib.h>

int k;

int triunghiulara(int a[20][20], int n, int m) {
    int i,j, tri=0;
    k=1;
    for(i=0;i<n;i++) {
        for(j=i+1;j<m;j++) {
            if(a[i][j]!=0) {
                k=0;
            }
        }
    }

    if(k!=0){
        tri=1;}
    return tri;
}

void triunghiularaSuperior(int a[20][20], int n, int m) {
    int i,j;
    for(i=1;i<n;i++) {
        for(j=0;j<i;j++) {
            a[i][j] = 0;
        }
    }

}

int main() {
    int a[20][20];
    int i,j,n,m, tri=0;
    printf("Linii: "); scanf("%d", &n);
    printf("Coloane: "); scanf("%d", &m);
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ",i,j); scanf("%d", &a[i][j]);
        }
    }
    puts("Afisare matrice... \n");
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf(" %d ", a[i][j]);
        }
        puts(" ");
    }
    puts(" ");
    tri = triunghiulara(a,n,m);


    if(tri==1) {
        puts("Matricea este triunghiulara inferior \n -----> Transformare in matrice triunghiulara superior... \n");
        triunghiularaSuperior(a, n, m);
        puts("Afisare matrice triunghiulara superior & inferior \n");

        for(i=0;i<n;i++) {
            for(j=0;j<m;j++) {
                printf(" %d ", a[i][j]);
            }
            puts(" ");
        }

    }

}







20) Verificarea daca o matrice este triunghiular inferioara

//o matrice este triunghiular inferioara daca toate elementele de deasupra diagonalei principale sunt egale cu 0

  

#include <stdio.h>
#include <stdlib.h>

int k;

int triunghiulara(int a[20][20], int n, int m) {
    int i,j, tri=0;
    k=1;
    for(i=0;i<n;i++) {
        for(j=i+1;j<m;j++) {
            if(a[i][j]!=0) {
                k=0;
            }
        }

    }

    if(k!=0){
        tri=1;
    }
    return tri;

}

int main() {
    int a[20][20];
    int i,j,n,m, tri=0;
    printf("Linii: "); scanf("%d", &n);
    printf("Coloane: "); scanf("%d", &m);
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ",i,j); scanf("%d", &a[i][j]);
        }
    }
    puts("Afisare matrice... \n");
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf(" %d ", a[i][j]);
        }
        puts(" ");
    }
    puts(" ");
    tri = triunghiulara(a,n,m);


    if(tri==1) {
        printf("Matricea este triunghiulara inferior. \n");
    }





}







Friday, January 8, 2016

19) Determinarea transpusei unei matrice

Sa se scrie programul care afiseaza transpusa unei matrice. Elementele matricei vor fi citite de la tastatura.

  

#include <stdio.h>
#include <stdlib.h>


int main() {
    int a[20][20],b[20][20];
    int i,j,n;
    printf("m=n= "); scanf("%d", &n);
    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
            printf("a[%d][%d] = ",i,j); scanf("%d", &a[i][j]);
        }
    }

    puts("Afisare matrice initiala...");
    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
          printf(" %d ", a[i][j]);
        } puts(" ");
    }
    puts("Afisare transpusa matricei...");
    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
           b[i][j] = a[j][i];
        }
    }

    for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
            printf(" %d ", b[i][j]);
        } puts(" ");
    }


}








Thursday, January 7, 2016

18) Determinarea produsului scalar a doi vectori (subprogram)

Sa se scrie programul care afiseaza produsul scalar a doi vectori folosind un subprogram. Elementele vectorilor vor fi citite de la tastatura.

  

#include <stdio.h>
#include <stdlib.h>

void scalar(float a[20], float b[20], float *produs, int size) {
    int i;
    *produs=0;
    for(i=0;i<size;i++) {
        *produs += a[i]*b[i];
    }
}

int main() {
    float a[20], b[20], produs;
    int i, size;
    printf("Dimensiunea vectorilor: "); scanf("%d", &size);
    for(i=0;i<size;i++) {
        printf("a[%d] = ", i); scanf("%f", &a[i]);
         printf("b[%d] = ", i); scanf("%f", &b[i]);
    }
    scalar(a,b, &produs, size);
    printf("prod scalar: %f", produs);

}







17) Determinarea elementului maxim dintr-un vector + aparitiile sale (subprogram)

Sa se scrie programul care afiseaza elementul maxim dintr-un vector precum si pozitiile pe care apare acesta. Vectorul va fi alocat dinamic iar elementele acestuia se vor citi de la tastatura.

  

#include <stdio.h>
#include <stdlib.h>

void maxim(float *v, float *max, float *aparitii_maxim, int dim) {
    int i, k=0;
    *max = -99999;
    for(i=0;i<dim;i++) {
        if(v[i]>*max) {
            *max = v[i];
            k=1;
            aparitii_maxim[0] = i;
        }
        else if (v[i]==*max) {
            aparitii_maxim[k++] = i;
        }
    }

    printf("Elementul maxim este: %6.1f \n", *max);

    if(k>0) {
        for(i=0;i<k;i++) {
           printf("Maximul apare pe pozitiie: %6.0f \n", aparitii_maxim[i]);
        }
   }

}


int main() {
    float *v, element_maxim, aparitii[20];
    int i, dim;
    printf("Dimensiune vector: "); scanf("%d", &dim);
    v = (float*)malloc(dim*sizeof(float));
    for(i=0;i<dim;i++) {
        printf("v[%d] = ", i); scanf("%f", &v[i]);
    }

    maxim(v, &element_maxim, aparitii, dim);


}







16) Inmultirea unui a doua matrice (subprogram+alocare dinamica)

Sa se scrie programul care afiseaza rezultatul inmultirii unei matrice A cu o matrice B folosind un subprogram. Elementele ambelor matrice se vor citi de la tastatura.

  

#include <stdio.h>
#include <stdlib.h>


float **produsF(float a[20][20], float b[20][20], int n, int k) {
    float **produs;
    int i,j,x;
    produs = (float**) malloc(n*sizeof(float));
    for(i=0;i<k;i++) {
        produs[i] = (float**) malloc(k*sizeof(float));
    }

    for(i=0;i<n;i++) {
        for(j=0;j<k;j++) {
            produs[i][j]=0;
            for(x=0;x<n;x++) {
                produs[i][j] += a[i][x]*b[x][j];
            }
        }
    }
    return produs;
}


int main() {
    float a[20][20], b[20][20], **c;
    int i,j,n,size,k;
    printf("Linii A: "); scanf("%d", &n);
    printf("Coloane A = Linii B: "); scanf("%d", &size);
    printf("Coloane B: "); scanf("%d", &k);

    for(i=0;i<n;i++) {
        for(j=0;j<size;j++) {
            printf("a[%d][%d] = ", i, j); scanf("%f", &a[i][j]);
        }
    }

    for(i=0;i<size;i++) {
        for(j=0;j<k;j++) {
            printf("b[%d][%d] = ", i, j); scanf("%f", &b[i][j]);
        }
    }

    c = produsF(a, b, n, k);
    puts("Matrice rezultat: ");
    for(i=0;i<n;i++) {
        for(j=0;j<size;j++) {
            printf(" %f ", c[i][j]);
        }
        puts(" ");
    }



}






15) Inmultirea a doua matrice (subprogram)

Sa se scrie programul care afiseaza rezultatul inmultirii unei matrice A cu o matrice B folosind un subprogram. Elementele ambelor matrice se vor citi de la tastatura.

  

#include <stdio.h>
#include <stdlib.h>

void produs(int a[20][20], int b[20][20], int c[20][20], int n, int k) {
    int i,j,x;
    for(i=0;i<n;i++) {
        for(j=0;j<k;j++) {
            c[i][j] = 0;
            for(x=0;x<n;x++) {
                c[i][j] += a[i][x]*b[x][j];
            }
        }
    }

}


int main() {
    int a[20][20], b[20][20], c[20][20]; //c = matrice output
    int i,j,n,k,size;
    printf("Linii A: "); scanf("%d", &n);
    printf("Coloane A = Linii B: "); scanf("%d", &size);
    printf("Columns B: "); scanf("%d", &k);

    for(i=0;i<n;i++) {
        for(j=0;j<size;j++) {
            printf("a[%d][%d] = ", i,j); scanf("%d", &a[i][j]);
        }
    }

    for(i=0;i<size;i++) {
        for(j=0;j<k;j++) {
            printf("b[%d][%d] = ", i,j); scanf("%d", &b[i][j]);
        }
    }

    produs(a,b,c,n,k);

    for(i=0;i<n;i++) {
        for(j=0;j<size;j++) {
            printf(" %d ", c[i][j]);
        }
        printf("\n");
    }

}






14) Inmultirea unui a doua matrice

Sa se scrie programul care afiseaza rezultatul inmultirii unei matrice A cu o matrice B. Elementele ambelor matrice se vor citi de la tastatura.

  

#include <stdio.h>
#include <stdlib.h>


int main() {
    int a[20][20], b[20][20], c[20][20]; //c = matrice rezultat
    int i,j,sizelc,n,k,x;
    printf("Linii A: "); scanf("%d", &n);
    printf("Coloane A: "); scanf("%d", &sizelc); printf("\n");

    puts("Coloane A = Linii B ");
    printf("Coloane B: "); scanf("%d", &k);

    for(i=0;i<n;i++) {
        for(j=0;j<sizelc;j++) {
            printf("a[%d][%d] = ", i, j); scanf("%d", &a[i][j]);
        }
    }

    for(i=0;i<sizelc;i++) {
        for(j=0;j<k;j++) {
            printf("b[%d][%d] = ", i, j); scanf("%d", &b[i][j]);        }
    }

    for(i=0;i<n;i++) {
        c[i][j] = 0;
        for(j=0;j<k;j++) {
            for(x=0;x<n;x++) {
                c[i][j] += a[i][x]*b[x][j];
            }
        }
    }

    puts("Matricea rezultata este: ");
    for(i=0;i<sizelc;i++) {
        for(j=0;j<k;j++) {
            printf(" %d ",  c[i][j]);
        }
        printf("\n");
    }




}






Wednesday, January 6, 2016

13) Inmultirea unui vector cu o matrice (subprogram+alocare dinamica)

Sa se scrie programul care afiseaza rezultatul inmultirii unui vector cu o matrice folosind un subprogram. Elementele matricei si ale vectorului se vor citi de la tastatura.

  

#include <stdio.h>
#include <stdlib.h>

void produs(int a[20][20], int b[], int *c, int dim) {
    int j,k;
    for(j=0;j<dim;j++) {
        c[j] = 0;
        for(k=0;k<dim;k++) {
            c[j] += b[k]*a[k][j];
        }
    }
}


int main() {
    int a[20][20], b[20], *c;
    int i,j,n,m;
     c = (int*)malloc(m*sizeof(int));
    printf("Numar linii: "); scanf("%d", &n);
    printf("Numar coloane: "); scanf("%d", &m);

    for (i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] =", i,j); scanf("%d", &a[i][j]);
        }
    }

    for(i=0;i<m;i++) {
        printf("b[%d] =", i); scanf("%d", &b[i]);
    }

    produs(a, b, c, m);
    puts("Vectorul rezultat: ");
    for(i=0;i<m;i++) {
        printf("c[%d] = %d \n",i,c[i]);
    }

    free(c);

}




12) Inmultirea unui vector cu o matrice (subprogram)

Sa se scrie programul care afiseaza rezultatul inmultirii unui vector cu o matrice folosind un subprogram. Elementele matricei si ale vectorului se vor citi de la tastatura.

  

#include <stdio.h>
#include <stdlib.h>

void produs(int a[20][20], int b[20], int dim, int c[20]) {
    int j,k;
    for(j=0;j<dim;j++) {
        c[j] = 0;
            for(k=0;k<dim;k++) {
                c[j] = c[j]+b[k]*a[k][j];
            }
    }
}

int main() {
    int a[20][20], b[20], c[20];
    int i,j,n,m,k;
    printf("Rows: "); scanf("%d", &n);
    printf("Columns: "); scanf("%d", &m);
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j); scanf("%d", &a[i][j]);
        }
    }
    for(i=0;i<m;i++) {
        printf("b[%d] = ", i); scanf("%d", &b[i]);
    }
    produs(a, b, m, c);
    printf("\n");   

    put("Vectorul rezultat este: \n");
    for(i=0;i<m;i++) {
        printf("c[%d] = %d \n", i, c[i]);
    }

}


11) Inmultirea unui vector cu o matrice

Sa se scrie programul care afiseaza rezultatul inmultirii unui vector cu o matrice. Elementele matricei si ale vectorului se vor citi de la tastatura.

#include <stdio.h>
#include <stdlib.h>


int main() {
    int a[20][20], b[20], c[20];
    int i, j, k, n, m; //n - linii, m - coloane
    printf("Numarul de linii: "); scanf("%d", &n);
    printf("Numarul de coloane: "); scanf("%d", &m);
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j); scanf("%d", &a[i][j]);
        }
    }

    for(k=0;k<m;k++) {
        printf("b[%d] = ", k); scanf("%d", &b[k]);
    }

    for(j=0;j<m;j++) {
        c[j] = 0;
        for(k=0;k<m;k++) {
            c[j] += b[k]*a[k][j];
        }
    }



    puts("Vectorul rezultat este: ");
    for(k=0;k<m;k++) {
        printf("c[%d] = %d \n", k, c[k]);
    }



}






10) Afisarea elementelor aflate deasupra diagonalei secundare / sub diagonala secundara

Sa se scrie programul care afiseaza elementele aflate deasupra diagonalei secundare si elementele aflate sub diagonala secundara a unei matrice dreptunghiulara de dimensiuni nxm. Elementele matricei se vor citi de la tastatura.

#include <stdio.h>
#include <stdlib.h>


int main() {
    int a[20][20], min[30];
    int i,j,n,m;
    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);

    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }

    puts("Elementele deasupra diagonalei secundara:");
    for(i=0;i<n-1;i++) { //deasupra diagonalei secundare
        for(j=0;j<n-1-i;j++){
            printf(" %d \n", a[i][j]);
        }
    }


    puts("Elementele sub diagonala secundara: \n");
    for(i=1;i<n;i++) { //sub diagonala secundare
        for(j=n-i;j<n;j++){
            printf(" %d \n", a[i][j]);
        }
    }

}







9) Afisarea elementelor aflate deasupra diagonalei principale / sub diagonala principala

Sa se scrie programul care afiseaza elementele aflate deasupra diagonalei principale si elementele aflate sub diagonala principala a unei matrice dreptunghiulara de dimensiuni nxm. Elementele matricei se vor citi de la tastatura.


#include <stdio.h>
#include <stdlib.h>

int main() {
    int a[20][20], min[30];
    int i,j,n,m, minim, maxim;

    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);

    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }

     puts("Elementele deasupra diagonalei principale:");
    for(i=0;i<n;i++) {       //deasupra diagonalei principale
        for(j=i+1;j<n;j++){
            printf(" %d \n", a[i][j]);
        }
    }


    puts("Elementele sub diagonala principala: \n");
    for(i=1;i<n;i++) {       //sub diagonala principale
        for(j=0;j<i;j++){
            printf(" %d \n", a[i][j]);
        }
    }



}



8) Minimul si maximul pe diagonala secundara a unei matrice

Sa se scrie programul care realizeaza determinarea elementului minim si a elementului maxim de pe diagonala secundara a unei matrice dreptunghiulara de dimensiuni nxm. Elementele matricei se vor citi de la tastatura.



#include <stdio.h>
#include <stdlib.h>

int main() {
    int a[20][20], min[30];
    int i,j,n,m, minim, maxim;
    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }

    minim = 99999;
    maxim = -99999;

    for(i=0;i<n;i++) {
        printf(" %d \n", a[i][n-i-1]);
        if(a[i][n-i-1]>maxim) {
            maxim = a[i][n-i-1];
        }
        if(a[i][n-i-1]<minim) {
            minim = a[i][n-i-1];
        }
    }

    printf("Minimul pe diagonala secundara este: %d \n", minim);
    printf("Maximul pe diagonala secundara este: %d", maxim);


}




Tuesday, January 5, 2016

7) Minimul si maximul pe diagonala principala a unei matrice

Sa se scrie programul care realizeaza determinarea elementului minim si a elementului maxim de pe diagonala principala a unei matrice dreptunghiulara de dimensiuni nxm. Elementele matricei se vor citi de la tastatura.



#include <stdio.h>
#include <stdlib.h>

int main() {
    int a[20][20];    int i,j,n,m, minim, maxim;
    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }

    minim = 999999;
    maxim =
-999999;
    for(i=0;i<n;i++) {
        if(a[i][i]<minim) {
            minim = a[i][i];
        }
        if(a[i][i]>maxim) {
            maxim = a[i][i];
        }
    }
    printf("Minimul pe diagonala principala este: %d \n", minim);
    printf("Maximul pe diagonala principala este: %d", maxim);

}

6) Minimul pe fiecare linie a unei matrice

Sa se scrie programul care realizeaza determinarea elementului minim de pe fiecare linie a unei matrice dreptunghiulara de dimensiuni nxm. Elementele matricei se vor citi de la tastatura.



#include <stdio.h>
#include <stdlib.h>

int main() {
    int a[20][20], min[30];
    int i,j,n,m;
    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);

    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }

    for(i=0;i<n;i++) {
            min[i] = a[i][0];
        for(j=0;j<m;j++) {
           if(a[i][j]<min[i]) {
              min[i] = a[i][j];
           }
        }
    }

    printf("\n");
     for(i=0;i<n;i++) {
        printf("Minimul pe linia %d este: %d \n", i, min[i]);
    }

}

5) Minimul pe fiecare coloana a unei matrice

Sa se scrie programul care realizeaza determinarea elementului minim de pe fiecare coloana a unei matrice dreptunghiulara de dimensiuni nxm. Elementele matricei se vor citi de la tastatura.



#include <stdio.h>
#include <stdlib.h>

int main() {
    int a[20][20], min[30];
    int i,j,n,m;

    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);

    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }

    for(j=0;j<n;j++) {
            min[j] = a[0][j];
        for(i=0;i<m;i++) {
           if(a[i][j]<min[j]) {
              min[j] = a[i][j];
           }
        }
    }
      for(j=0;j<n;j++) {
        printf("Minimul pe coloana %d este: %d \n", j, min[j]);
    }

}

4) Maximul pe fiecare coloana a unei matrice

Sa se scrie programul care realizeaza determinarea elementului maxim de pe fiecare coloana a unei matrice dreptunghiulara de dimensiuni nxm. Elementele matricei se vor citi de la tastatura.


#include <stdio.h>
#include <stdlib.h>

int main() {
    int a[20][20], max[30];
    int i,j,n,m;

    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);

    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }
    maxim=a[0][0];
    minim=a[0][0];

    for(j=0;j<n;j++) {
            max[j] = a[0][j];
        for(i=0;i<m;i++) {
           if(a[i][j]>max[j]) {
              max[j] = a[i][j];
           }
        }
    }

    printf("\n");
     for(j=0;j<n;j++) {
        printf("Maximul pe coloana %d este: %d \n", j, max[j]);
    }
}

 

Monday, January 4, 2016

3) Maximul pe fiecare linie a unei matrice

Sa se scrie programul care realizeaza determinarea elementului maxim de pe fiecare linie a unei matrice dreptunghiulara de dimensiuni nxm. Elementele matricei se vor citi de la tastatura.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int a[20][20], max[30];
    int i,j,n,m;
    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }
    maxim=a[0][0];
    minim=a[0][0];

    for(i=0;i<n;i++) {
            max[i] = a[i][0];
        for(j=0;j<m;j++) {
           if(a[i][j]>max[i]) {
              max[i] = a[i][j];
           }
        }
    }

      for(i=0;i<n;i++) {
        printf("Maximul pe linia %d este: %d \n", i, max[i]);
    }
}

2) Elementul minim si elementul maxim dintr-o matrice

Sa se realizeze programul care determina elementele maxim si minim dintr-o matrice dreptunghiulara, de dimensiuni nxm.


#include <stdio.h>
#include <stdlib.h>

int main() {
    int a[20][20];
    int i,j,n,m,maxim,minim;

    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);

    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }
    maxim=a[0][0];
    minim=a[0][0];

    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            if(a[i][j]>maxim) {
                maxim = a[i][j];
            }
            if(a[i][j]<minim) {
                minim = a[i][j];
            }
        }
    }

    printf("Minimul este: %d \n", minim);
    printf("Maximul este: %d \n", maxim);


}

1) Suma elementelor unei matrice

Sa se realizeze programul care calculeaza suma elementelor unei matrice dreptunghiulare de dimensiune nxm. Elementele matricei se vor citi de la tastatura.


#include <stdio.h>
#include <stdlib.h>


int main() {
    int a[20][20];
    int i,j,n,m,suma=0;

    printf("Introduceti numarul de linii: "); scanf("%d", &n);
    printf("Introduceti numarul de coloane: "); scanf("%d", &m);

    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }

    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            suma += a[i][j];
        }
    }

    printf("Suma elementelor matricei este: %d", suma);

}