Professional Documents
Culture Documents
1. Uneti matricu celih brojeva dimenzija nxn (kvadratna) i ispisati matricu čiji je svaki element uvećan 2 puta.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,n,a[10][10];
printf("Unesite broj vrsta(kolona) matrice: (n<=10)");
scanf("%d",&n);
//UNOS ELEMENATA MATRICE
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
printf("\n");
}
//ISPIS UVECANE MATRICE
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("a[%d][%d]=%d ",i,j,2*a[i][j]);
printf("\n");
}
return 0;
}
2.Napisati program za formiranje jedinične matrice a(nxn) za n<=10. Jedinična matrica je matrica koja na glavnoj dijagonali
ima samo jedinice, a svi ostali elementi su nule, i ima isti broj vrsta i kolona‐kvadratna matrica.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,n;
//OBVEZNO DEFINISATI STATIC INT, ZBOG NULA MATRICE
static int a[10][10];
printf("Unesite broj vrsta(kolona) matrice: (n<=10)");
scanf("%d",&n);
for (i=0;i<n;i++)
a[i][i]=1;
//ISPIS JEDINIČNE MATRICE
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
1
ILI da sami formiramo nule matrice
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,n;
//BEZ STATIC INT
int a[10][10];
printf("Unesite broj vrsta(kolona) matrice: (n<=10)");
scanf("%d",&n);
for (i=0;i<n;i++)
for(j=0;j<n;j++)
if (i==j) a[i][j]=1;
else a[i][j]=0;
//ISPIS JEDINIČNE MATRICE
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
3. Napistati funkciju za unos matrice i funkciju za ispis matrice (kvadratne n<=10) . Testirati u programu.
#include <stdio.h>
#include <stdlib.h>
void Unos(int a[][10],int n)
{ int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
printf("\n");
}
}
void Ispis(int a[][10],int n)
{ int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%3d ",a[i][j]);
printf("\n");
}
}
int main()
{ int n,a[10][10];
printf("Unesite broj vrsta(kolona) matrice: (n<=10)");
scanf("%d",&n);
Unos(a,n);
Ispis(a,n);
return 0;}
2
4. Unosi se matrica realnih brojeva A( nxn), n<=100. Napisati funkciju koja u matrici A određuje:
a) sumu pozitivnih elemenata matrice;
b) sumu elemenata ispod glavne dijagonale;
c) sumu elemenata iznad sporedne dijagonale; 3 4 5
d) maksimalni element matrice;
e) sumu elemenata glavne dijagonale; 1 2 3
f) minimalni element na sporednoj dijagonali;
#include<stdio.h> 8 5 1
#include <stdlib.h>
void citaj(float a[][100],int n)
{
int i,j;
printf("Uneti elemente matrice \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%f",&a[i][j]);
printf("\n");
}
}
//a) f‐ja za sumu pozitivnih elemenata matrice; SumaPoz
float SumaPoz(float a[][100],int n)
{ float s=0;
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i][j]>0) s+= a[i][j];
return s;
}
//b) f‐ja za sumu elemenata ispod glavne dijagonale; IspodGD
float IspodGD(float a[][100],int n)
{ float s=0;
int i,j;
for(i=1;i<n;i++)
for(j=0;j<i;j++)
s+= a[i][j];
return s;}
// c) f‐ja za sumu elemenata iznad sporedne dijagonale; IznadSD
float IznadSD(float a[][100],int n)
{ float s=0;
int i,j;
for(i=0;i<n‐1;i++)
for(j=0;j<n‐1‐i;j++)
s+= a[i][j];
return s;
}
// d)f‐ja za maksimalni element matrice;
float MaxElement(float a[][100],int n)
{ float m=a[0][0];
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i][j]>m) m= a[i][j];
return m;}
3
//e) f‐ja za sumu elemenata glavne dijagonale; SumaGD
float SumaGD(float a[][100],int n)
{ float s=0;
int i;
for(i=0;i<n;i++)
s+= a[i][i];
return s;}
//f) minimalni element na sporednoj dijagonali;
float MinSD(float a[][100],int n)
{ float m=a[0][n‐1];
int i;
for(i=1;i<n;i++)
if(a[i][n‐1‐i]<m) m= a[i][n‐1‐i];
return m;
}
int main()
{
float a[100][100];
int n;
printf("Unesite dimenziju matrice: ");
scanf("%d",&n);
citaj(a,n);
printf("\n Zbir elemenata matrice S=%5.2f",SumaPoz(a,n));
printf("\n Zbir elemenata ispod glavne dijagonale S=%5.2f",IspodGD(a,n));
printf("\n Zbir elemenata iznad sporedne dijagonale S=%5.2f",IznadSD(a,n));
printf("\n Najveci element matrice je m=%.2f",MaxElement(a,n));
printf("\n Zbir elemenata glavne dijagonale S=%5.2f",SumaGD(a,n));
printf("\n Najmanji element sporedne dijagonale je m=%.2f",MinSD(a,n));
return 0;
}
5. Napisati funkciju kojom se razmenjuju elementi k‐te i q –te:
a) vrste;
b) kolone;
Testirati u programu.
#include<stdio.h> npr. za uneto k=2 i q=4 razmena vrste(reda)
#include <stdlib.h> dobiće se
void Unos(int a[][10],int n) 1 1 1 1 1 1 1 1
{ int i,j; 2 3 4 2 4 4 4 4
for(i=0;i<n;i++) 3 3 3 3 3 3 3 3
{ 4 4 4 4 2 3 4 2
for(j=0;j<n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
printf("\n");
}
}
void Ispis(int a[][10],int n)
{ int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
4
printf("%3d ",a[i][j]);
printf("\n"); void RazmenaKolone(int a[][10],int n,int k,int q)
} { int i,pom;
} for(i=0;i<n;i++)
void RazmenaVrste(int a[][10],int n,int k,int q) {
{ int j,pom; pom=a[i][k‐1];
for(j=0;j<n;j++) a[i][ k‐1]=a[i][ q‐1];
{ a[i][ q‐1]=pom;
pom=a[k‐1][j]; }
a[k‐1][j]=a[q‐1][j];
a[q‐1][j]=pom; }
}
}
int main()
npr. za uneto k=2 i q=4 razmena kolone
{ int n,k,q,a[10][10];
dobiće se
printf("Unesite broj vrsta(kolona) matrice: (n<=10)");
1 1 1 1 1 1 1 1
scanf("%d",&n);
2 3 4 2 2 2 4 3
printf("Unesite koje vrste hocete da zamenite: ");
3 1 3 3 3 3 3 1
scanf("%d%d",&k,&q);
4 0 4 4 4 4 4 0
Unos(a,n);
RazmenaVrste(a,n,k,q);
Ispis(a,n);
return 0;
}
Moze i ovako:
void Razmeni(int *a,int *b)
{ int pom;
pom=*a;
*a=*b;
*b=pom;
}
void RazmenaKolone(int a[][10],int n,int k,int q)
{ int i;
for(i=0;i<n;i++)
Razmeni(&a[i][k‐1],&a[i][q‐1]);
}
6. Napisati program koji u kvadratnoj matrici (n<=10) sa jednom funkcijom koja računa sumu svih elemenata matrice,
minimalni, maksimalni element kao i srednju vrednost elemenata na glavnoj dijagonali. (funkcije koje vraćaju više vrednosti)
#include<stdio.h>
#include <stdlib.h>
void citaj(int a[][10],int n)
{
int i,j;
printf("Uneti elemente matrice \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("\n");
}
}
5
void pisi(int a[][10],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
void sve(int a[][10],int n, int *s,int *mini,int *maxi,float *sr)
{
int i,j;
*s = 0;
*mini = a[0][0];
*maxi = a[0][0];
*sr =0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
*s+=a[i][j];
if(a[i][j]<*mini)
*mini = a[i][j];
if(a[i][j]>*maxi)
*maxi = a[i][j];
if(i==j) *sr += a[i][j];
}
*sr/=n;
}
int main()
{
int a[10][10], n, s,mini,maxi;
float sr;
printf("Unesite dimenziju matrice: ");
scanf("%d",&n);
citaj(a,n);
pisi(a,n);
sve(a,n, &s, &mini, &maxi, &sr);
printf("\nS=%d, min=%d, max=%d, sr=%.2f",s,mini,maxi,sr);
return 0;
}
6
7. Zaključne ocene učenika jednog odeljenja date su matricom A(nxm),učenici n<=50, predmeti m<=15.
a[i][j] jeocena i‐tog učenika iz predmeta j.Napisati program kojim se unose zaključne ocene za svakog učenika, a zatim se za
svakog učenika ispisuje prosečna ocena i za svaki predmet prosečna ocena tog predmeta u odeljenju.
#include<stdio.h>
#include <stdlib.h>
void Unos(int a[][15],int n,int m)
{ int i,j; 2 4 4 2
for(i=0;i<n;i++) 3 5 3 5
{ 2 2 2 2
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
printf("\n");
}
}
int main()
{ int n,m,i,j,a[50][15];
float su,sp;
printf("Unesite broj ucenika(n<=50): ");
scanf("%d",&n);
printf("Unesite broj predmeta(m<=15): ");
scanf("%d",&m);
Unos(a,n,m);
printf("\n PROSECI PO UCENICIMA\n");
for(i=0;i<n;i++)
{
su=0;
for(j=0;j<m;j++)
su+=a[i][j];
su=su/m;
printf("%d. ucenik ima prosek %5.2f\n",i+1,su);
}
printf("\n PROSECI PREDMETIMA\n");
for(j=0;j<m;j++)
{
sp=0;
for(i=0;i<n;i++)
sp+=a[i][j];
sp=sp/n; Ako ima jedinica da ne računa prosek
printf("%d. predmet prosek %5.2f\n",j+1,sp); for(i=0;i<n;i++)
} {
return 0; su=0;
} for(j=0;j<m;j++)
if(a[i][j]==1)
{ su=1;
goto naredba;
}
else su+=a[i][j];
su=su/m;
naredba:printf("%d. ucenik ima prosek %5.2f\n",i+1,su);
}
7
Isti zadatak, samo sto se prosečne ocne učenika smeštaju u niz Uc, a prosečne ocene predmeta u niz Pr.
#include<stdio.h>
#include <stdlib.h>
void Unos(int a[][15],int n,int m)
{ int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
printf("\n");
}
}
int main()
{ int n,m,i,j,a[50][15];
float su,sp,Uc[50],Pr[15];
printf("Unesite broj ucenika(n<=50): ");
scanf("%d",&n);
printf("Unesite broj predmeta(m<=15): ");
scanf("%d",&m);
Unos(a,n,m);
printf("\n PROSECI PO UCENICIMA\n");
for(i=0;i<n;i++)
{
su=0;
for(j=0;j<m;j++)
if(a[i][j]==1)
{ su=1;
goto naredba;
}
else su+=a[i][j];
su=su/m;
naredba:Uc[i]=su;
}
for(i=0;i<n;i++)
printf("\n %5.2f",Uc[i]);
printf("\n PROSECI PREDMETIMA\n");
for(j=0;j<m;j++)
{
sp=0;
for(i=0;i<n;i++)
sp+=a[i][j];
sp=sp/n;
Pr[j]=sp;
}
for(j=0;j<m;j++)
printf("\n %5.2f",Pr[j]);
return 0;
}
8