//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(" ");
}
}
}
//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");
}
}
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(" ");
}
}
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);
}
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);
}
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(" ");
}
}
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");
}
}
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");
}
}
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);
}
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]);
}
}
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]);
}
}
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]);
}
}
}
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]);
}
}
}
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);
}
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);
}
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]);
}
}
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]);
}
}
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]);
}
}
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]);
}
}
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);
}
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);
}