You are on page 1of 12

//MATRICE, UNOS, ISPIS, MIN, MAX ČLAN I NJIHOVI INDEKSI

#include <stdio.h>
#include <string.h>
main()
{
int mat[100][100], n, m, i, j, max, min,imax, jmax, imin, jmin;
do{
printf("Unesite broj redova matrica:\n ");
scanf("%d", &n);
}while(n<2 || n>100);
do{
printf("Unesite broj kolona matrice:\n");
scanf("%d", &m);
}while( m<2 || m>100); //ponovni unos ako se ne unesu odg dimenzije
printf("Ukupan broj elemenata matrice je %d.\n",n*m);
printf("Unesite elemente matrice: \n");
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
printf("mat[%d][%d]: ",i+1,j+1); //da korisnik fino vidi koji element, koje indekse unosi
scanf("%d", &mat[i][j]);
printf("\n"); // da se predje u novi red nakon sto se prethodni popuni
}
}
printf("Unesena matrica je: \n");
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
printf("%d\t", mat[i][j]);
}
printf("\n"); // da se predje u novi red nakon sto se prethodni ispise
}
max=mat[0][0];
imax=0;
jmax=0;
min=mat[0][0];
imin=0;
jmin=0;
//MAX I MIN ELEMENT MATRICE
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(mat[i][j]>max)
{
max=mat[i][j];
imax=i;
jmax=j;
}
if(mat[i][j]<min)
{
min=mat[i][j];
imin=i;
jmax=j;
}
}
}
printf("MAX element je %d, na poziciji [%d][%d], a MIN element je %d, na poziciji [%d][%d].\n", max, imax+1, jmax+1, min,
imin+1, jmin+1); //da korisnik bolje zna koji je indeks jer u C indeks ide od 0.
system("pause");
}

2. suma elemenata na glavnoj dijagonali, proizvod onih koji nisu

#include <stdio.h>

main(){

//suma elemenata na glavnoj dijagonali, proizvod onih koji nisu

int mat[100][100],i,j,n,m,suma=0, proizvod=1;

do{

printf("Unesite dimenziju matrice \n");

scanf("%d", &n);

}while(n<1);

do{

printf("Unesite dimenziju matrice \n");

scanf("%d", &m);

}while(m<1);

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

for(j=0;j<m;j++)

printf("Unesite element matrice \n");

scanf("%d", &mat[i][j]);

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

for(j=0;j<m;j++)

printf("%d ",mat[i][j]);

} printf("\n");

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

{
for(j=0;j<m;j++)

if(j==i)

suma+=mat[i][j];

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

for(j=0;j<m;j++)

if(j!=i)

proizvod*=mat[i][j];

printf(" Suma elemenata na glavnoj dijagonali je %d \n",suma);

printf("Proizvod elemenata mimo gl dij je %d", proizvod);

system("pause");

3. //inkrementacija elemenata na glavnoj dijagonali, x2 ispod, x3 iznad nje

#include <stdio.h>

main(){

int mat[100][100],i,j,n,m;

do{

printf("Unesite dimenziju matrice \n");

scanf("%d", &n);

}while(n<1);

do{

printf("Unesite dimenziju matrice \n");

scanf("%d", &m);
}while(m<1);

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

for(j=0;j<m;j++)

printf("Unesite element matrice \n");

scanf("%d", &mat[i][j]);

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

for(j=0;j<m;j++)

printf("%d ",mat[i][j]);

} printf("\n");

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

for(j=0;j<m;j++)

if(j==i)

mat[i][j]=mat[i][j]+1;

else if(j>i){mat[i][j]=mat[i][j]*3;}

else{mat[i][j]=mat[i][j]*2;}

printf("Transformisana mat je \n");

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

for(j=0;j<m;j++)

printf("%d ",mat[i][j]);
} printf("\n");

4. //mnozenje kvadratnih matrica

#include <stdio.h>

main(){

int a[100][100],b[100][100],i,j,n,c[100][100],k,s;

do{

printf("Unesite dimenziju matrica \n");

scanf("%d", &n);

}while(n<1);

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

for(j=0;j<n;j++)

printf("Unesite element matrice A \n");

scanf("%d", &a[i][j]);

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

for(j=0;j<n;j++)

printf("Unesite element matrice B \n");

scanf("%d", &b[i][j]);

} printf("\n");

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

for(j=0;j<n;j++)

printf("%d ",a[i][j]);

} printf("\n");
}

printf("\n");

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

for(j=0;j<n;j++)

printf("%d ",b[i][j]);

} printf("\n");

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

for(j=0;j<n;j++)

s=0; //resetovanje

for(k=0;k<n;k++) //matrica proizvoda je istog reda kao A i B

s+=a[i][k]*b[k][j];

c[i][j]=s;

printf("Matrica proizvoda je:\n");

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

for(j=0;j<n;j++)

printf("%d\t", c[i][j]);

printf("\n");

system("pause");

5. //Najmanja suma vrste KVADRATNE matrice

#include<stdio.h>

#include<string.h>

#define max 100

main()
{

int a[max][max];

int n,i,j,min=0,s=0,imin,m;

printf("Unesite dimenzije matrice A: \n");

scanf("%d",&n);

printf("Unos elemenata matrice A:\n");

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

for(j=0;j<n;j++)

printf("Unosite [%d][%d] element: ", i+1,j+1);

scanf("%d",&a[i][j]);

printf("Prikaz elemenata matrice A:\n");

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

for(j=0;j<n;j++)

printf("%d ",a[i][j]);

printf("\n");

//suma prve vrste kao referentna za odredjivanje min sume

for(j=0;j<n;j++)

{ min+=a[0][j];

imin=0;}

printf(" Suma prve kolone je %d \n ", min);

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

{ s=0;

for(j=0;j<n;j++)

s+=a[i][j];
}

if(s<min)

min=s;

imin=i;

printf("Najmanju sumu elemenata ima %d. vrsta, a ta suma je %d.\n", imin, min);

system("pause");

6. /*Napisati program kojim se omogucava da se sa tastature unesu elementi i dimenzija celobrojne matrice,

a na ekran se prikazuje informacija da li je suma elemenata matrice koji se nalazi desno od glavne i

levo od sporedne dijagonale deljiva sa maksimalnim elementom glavne dijagonale matrice.

*/

#include<stdio.h>

#define max 100

main()

int a[max][max];

int n,i,j,sd=0,sl=0,maxe=0;

printf("Unesite dimenzije matrice A: \n");

scanf("%d",&n);

printf("Unos elemenata matrice A:\n");

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

for(j=0;j<n;j++)

printf("Unosite [%d][%d] element: ", i+1,j+1);

scanf("%d",&a[i][j]);

printf("Prikaz elemenata matrice A:\n");


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

for(j=0;j<n;j++)

printf("%d ",a[i][j]);

printf("\n");

} maxe=a[0][0];

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

for(j=0;j<n;j++)

{ if(j==i){

if(maxe<a[i][j]){

maxe=a[i][j];

}}}

printf(" Max na gl dijagonali je %d \n",maxe);

//a na ekran se prikazuje informacija da li je suma elemenata matrice koji se nalazi desno od glavne i levo od sporedne
dijagonale deljiva sa maksimalnim elementom glavne dijagonale matrice.

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

for(j=0;j<n;j++)

{ if(i<j){

sd+=a[i][j];

else if(i>j)

sl+=a[i][j];

}}}

printf(" Suma desna %d suma leva %d \n",sd,sl);

if(sd%maxe==0){ printf("Sd djeljivo sa maxe \n");}

else {printf("Nije djeljivo sd \n");}

if(sl%maxe==0){ printf("Sl djeljivo sa maxe \n");}


else {printf("Nije djeljivo sl \n");}

7.
/*Rotacija matrice ulijevo za 1 poz*/
//Rotacije UDESNO/ULIJEVO se vrsi po redovima!!!, mijenja nam se indeks KOLONE
#include<stdio.h>
#include<string.h>
#define MAX 100
main()
{
int a[MAX][MAX],m,n,i,j,pom,k;
printf("Unesite dimenzijue matrice: ");
scanf("%d", &n); //br redova
scanf("%d", &m); //br kolona
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("Unosite [%d][%d] element: ", i+1, j+1);
scanf("%d", &a[i][j]);
}
}
printf("Ispis unesene matrice: \n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
{
//ovdje bi isla jos jedna for petlja ako se kaze rotacija za vise od 1 pozicije
//ako matricu rotiram po vrsti ne treba mi for za kolone
pom=a[i][0];
//resetovati vrijednost pom-a ta svaku vrstu
//jer rotiramo udesno pa da se ne izgubi posljednji clan u redu //NI SLUČAJNO STAVITI a[i][m]!!!!
for(k=1;k<=m-1;k++) //ova je donja granica jer ne mozemo krenuti sa 0, jer nema pozicija -1 u nizu
{
a[i][k-1]=a[i][k];
}
a[i][m-1]=pom;
}
printf("Transformisana matrica je: \n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d\t", a[i][j]);
printf("\n");
}

system("pause");
}
/*Rotacija matrice nagore za 1 poz*/
//Rotacije NAGORE/NADOLE se vrsi po kolonama!!!, mijenja nam se indeks REDA
#include<stdio.h>
#include<string.h>
#define MAX 100
main()
{
int a[MAX][MAX],m,n,i,j,pom,r;
printf("Unesite dimenzijue matrice: ");
scanf("%d", &n); //br redova
scanf("%d", &m); //br kolona
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("Unosite [%d][%d] element: ", i+1, j+1);
scanf("%d", &a[i][j]);
}
}
printf("Ispis unesene matrice: \n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
for(j=0;j<m;j++)
{
//ovdje bi isla jos jedna for petlja ako se kaze rotacija za vise od 1 pozicije
//ako matricu rotiram po KOLONI ne treba mi for za REDOVE
pom=a[0][j];
//resetovati vrijednost pom-a za svaku kolonu
//jer rotiramo nagore pa da se ne izgubi najvisi clan u koloni //
for(r=1;r<n;r++) //ova je donja granica jer ne mozemo krenuti sa 0, jer nema pozicija -1 u nizu
{
a[r-1][j]=a[r][j];
}
a[n-1][j]=pom;
}
printf("Transformisana matrica je: \n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d\t", a[i][j]);
printf("\n");
}

system("pause");
}
/*Suma elemenata ISPOD glavne i IZNAD sporedne */
#include<stdio.h>
#include<string.h>
#define MAX 100
main()
{
int a[MAX][MAX], i, j, n, m,s1=0, s2=0, s;
do{
printf("Unesite dimenzije matrice: \n");
scanf("%d %d", &n, &m);
if(n!=m)
printf("MAtrica mora biti kvadratna. Ponovite unos.\n");
}while(n!=m);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("Unosite [%d][%d] element: ", i+1,j+1);
scanf("%d", &a[i][j]);
}
}
//ispis
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i>j) //ispod glavne
s1+=a[i][j];
if(i+j<n-1) //iznad sporedne
s2+=a[i][j];
}
}
s=s1+s2;
printf("Trazena suma je s=%d\n", s);
system("pause");
}

You might also like