Ciao prova questo codice:
matrice.h:
#ifndef MATRICE
#define MATRICE
class Matrice
{
public:
Matrice();
~Matrice();
void leggi_mat(int colonna,int riga, long** matrice);
int rigamax(long **mat,int colonna,int riga);
void Matrice::stampa(long** mat,int colonne, int righe);
};
#endif
matrice.cpp
#include <iostream>
#include "matrice.h"
using namespace std;
Matrice::Matrice()
{
}
Matrice::~Matrice()
{
}
void Matrice::leggi_mat(int colonna,int riga, long** matrice)
{
// long matrice[riga][colonna], *p;
for(int i=0;i<riga;i++)
{
for(int c=0, a;c<colonna;c++)
{
cout << "Inserisci l'elemento riga " << i+1 << " e colonna " << c+1 << ": " ;
cin >> a;
matrice[c]=a;
}
}
}
int Matrice::rigamax(long **mat,int colonna,int riga)
{
long sm=0, rg=0, somma=0;
int i;
for(i=0;i<riga;i++)
{
somma=0;
for(int c=0, ;c<colonna;c++)
somma+=mat[c];
if(somma>sm)
{
sm = somma;
rg = i;
}
}
return rg+1;
}
void Matrice::stampa(long** mat,int colonne, int righe)
{
cout << "Matrice:" << endl;
for (int i=0;i< righe;i++)
{
for(int c=0;c<colonne;c++)
cout << mat[c] << " ";
cout << endl;
}
}
main.cpp
#include <cstdlib>
#include <iostream>
#include "matrice.h"
#define MAXLINES 10
using namespace std;
int main(int argc, char *argv[])
{
Matrice mat;
int colonne=0, righe=0, maxriga;
long** matx;
while (colonne<=0 && righe <=0)
{
cout << "Inserisci il numero delle colonne: " ;
cin >> colonne;
cout << "Inserisci il numero delle righe: " ;
cin >> righe;
}
matx = new long*[righe];
for(int i=0;i<righe;i++)
matx = new long[colonne];
mat.leggi_mat(colonne,righe,matx);
mat.stampa(matx,colonne,righe);
maxriga = mat.rigamax(matx,colonne,righe);
cout << maxriga << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
dovrebbe andare, ho inserito anche una funzione stampa che visualizza la matrice.