Zadatak glasi:
Napisite program koji ce omoguciti kreiranje matrice
5x4. Svaki red u matrici predstavlja studenta, a
svaka od kolona ocjenu koju je student postigao na 4
ispita. Uz pomoc:
–Funkcije: void unos(int[][4], int, int); omogucite
unos ocjena za svakog od studenata; vodite racuna
da se mogu unijeti samo prolazne ocjene (6-10);
–Funkcije: int max(int[][4],int,int,int); pronaci
najvecu ocjenu svakog od studenata;
–Pomoc funkcije: float prosjek(int[][4],int,int,int);
izracunati prosjek za svaki odpredmeta;
Ispise najvecih ocjena za svakog od studenata I
prosjecnih ocjena po predmetu vrsite u funkciji
main.
Ja sam uspio uraditi nesto, unos nije problem, ove druge 2 funkcije jesu, uradio sam dio, ali nikako ne mogu dobiti ispis maksimalne ocjene za svakog studenta i prosjeka za svaki predmet, dobijem ja mislim maksimalnu ocjenu prvog i prosjek prvog predmeta.
Pretpostavljam da je problem kod brojaca i resetovanja ali nikako da skontam rjesenje.
Evo mog koda:
Code:
#include <iostream>
#include <cmath>
using namespace std;
void unos(int[][4], int, int);
int max(int[][4],int,int,int);
float prosjek(int[][4],int,int,float);
int main ()
{
const int red=5;
const int kol=4;
int mat[red][kol];
unos (mat, red, kol);
for (int i=0; i<red; i++)
{
int maksimalni=0;
cout<<"Maksimalna ocjena studenta "<<i+1<<" je: "<<max (mat, red, kol, maksimalni)<<endl;
}
for (int j=0; j<kol; j++)
{
float prospre=0;
cout<<"Prosjek ocjena predmeta "<<j+1<<" je: "<<prosjek(mat, red, kol, prospre)<<endl;
}
system ("PAUSE");
}
void unos (int mat[][4], int red, int kol)
{
for (int i=0; i<red; i++)
{
for (int j=0; j<kol; j++)
{
do{
cout<<"Unesite ["<<i+1<<"]["<<j+1<<"] clan niza: ";
cin>>mat[i][j];
if (mat[i][j]<6||mat[i][j]>10)
cout<<"Unijeli ste pogresnu ocjenu!"<<endl;
}
while (mat[i][j]<6||mat[i][j]>10);
}
}
}
int max (int mat[][4], int red, int kol, int max)
{
for (int i=0; i<red; i++)
{
max=0;
for (int j=0; j<kol; j++)
{
if (mat[i][j]>max)
max=mat[i][j];
}
return max;
}
}
float prosjek (int mat[][4], int red, int kol, float prospre)
{
for (int j=0; j<kol; j++)
{
prospre=0;
float suma=0;
int brojac=0;
for (int i=0; i<red; i++)
{
suma+=mat[i][j];
brojac++;
}
prospre=suma/float(brojac);
return prospre;
}
}
#include <iostream>
#include <cmath>
using namespace std;
void unos(int[][4], int, int);
int max(int[][4],int,int,int);
float prosjek(int[][4],int,int,float);
int main ()
{
const int red=5;
const int kol=4;
int mat[red][kol];
unos (mat, red, kol);
for (int i=0; i<red; i++)
{
int maksimalni=0;
cout<<"Maksimalna ocjena studenta "<<i+1<<" je: "<<max (mat, red, kol, maksimalni)<<endl;
}
for (int j=0; j<kol; j++)
{
float prospre=0;
cout<<"Prosjek ocjena predmeta "<<j+1<<" je: "<<prosjek(mat, red, kol, prospre)<<endl;
}
system ("PAUSE");
}
void unos (int mat[][4], int red, int kol)
{
for (int i=0; i<red; i++)
{
for (int j=0; j<kol; j++)
{
do{
cout<<"Unesite ["<<i+1<<"]["<<j+1<<"] clan niza: ";
cin>>mat[i][j];
if (mat[i][j]<6||mat[i][j]>10)
cout<<"Unijeli ste pogresnu ocjenu!"<<endl;
}
while (mat[i][j]<6||mat[i][j]>10);
}
}
}
int max (int mat[][4], int red, int kol, int max)
{
for (int i=0; i<red; i++)
{
max=0;
for (int j=0; j<kol; j++)
{
if (mat[i][j]>max)
max=mat[i][j];
}
return max;
}
}
float prosjek (int mat[][4], int red, int kol, float prospre)
{
for (int j=0; j<kol; j++)
{
prospre=0;
float suma=0;
int brojac=0;
for (int i=0; i<red; i++)
{
suma+=mat[i][j];
brojac++;
}
prospre=suma/float(brojac);
return prospre;
}
}