Professional Documents
Culture Documents
#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");
}
#include <stdio.h>
main(){
do{
scanf("%d", &n);
}while(n<1);
do{
scanf("%d", &m);
}while(m<1);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
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];
system("pause");
#include <stdio.h>
main(){
int mat[100][100],i,j,n,m;
do{
scanf("%d", &n);
}while(n<1);
do{
scanf("%d", &m);
}while(m<1);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
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;}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
printf("%d ",mat[i][j]);
} printf("\n");
#include <stdio.h>
main(){
int a[100][100],b[100][100],i,j,n,c[100][100],k,s;
do{
scanf("%d", &n);
}while(n<1);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d", &a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
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
s+=a[i][k]*b[k][j];
c[i][j]=s;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
printf("%d\t", c[i][j]);
printf("\n");
system("pause");
#include<stdio.h>
#include<string.h>
main()
{
int a[max][max];
int n,i,j,min=0,s=0,imin,m;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
for(j=0;j<n;j++)
{ min+=a[0][j];
imin=0;}
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
*/
#include<stdio.h>
main()
int a[max][max];
int n,i,j,sd=0,sl=0,maxe=0;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
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];
}}}
//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];
}}}
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");
}