PDA

Visualizza la versione completa : riga di somma massima in c


c_nicola
29-12-2008, 21:37
Ragazzi mi serve un programma in c che calcoli la riga con elementi di somma massima in una matrice. Mi serve l'implementazione della funzione int rigamax...qualcuno pu aiutarmi?? grazie


#include<iostream>
using namespace std;
int rigamax(int m[100][100], int r);
int main()
{int m[100][100];
int r,c,i,j;
cout<<"r";
cin>>r;
cout<<"c";
cin>>c;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{cout<<"m["<<i<<"]["<<j<<"]";
cin>>m[i][j];
}
for(i=0;i<r;i++)
{for(j=0;j<c;j++)
cout<<m[i][j]<<"\t";
cout<<endl;}
cout<<rigamax(m,r);




system("PAUSE"); }
int rigamax(int m[100][100], int r)
{
}

come faccio a implementare la funzione rigamax???

sotoli
29-12-2008, 22:38
Intanto secondo dovresti passare alla funzione rigamax anche il numero delle colonne:

rigamax(m,r,c)

in modo tale da strutturare la funzione in questo modo:


int rigamax(int matr[][100], int r, int c)
{
int somma = 0, temp;
for(int i=0; i<r; i++)
{
temp = 0;
for(int j=0; j<c; j++)
temp += matr[i][j];
somma = (somma >= temp) ? somma : temp;
}
return somma;
}

Quando si passa una matrice come argomento ad una funzione non importa mettere anche il numero di righe, si pu lasciare vuoto.

P.S.: Dal titolo della discussione hai chiesto aiuto su un programma in C ma quello che hai postato C++.

c_nicola
29-12-2008, 22:48
somma = (somma >= temp) ? somma : temp;
non ho capito cosa significa qst stringa...cmq noi usiamo il c kn qlk comando del c++ tipo cin cout...

sotoli
29-12-2008, 22:57
Originariamente inviato da c_nicola
somma = (somma >= temp) ? somma : temp;
non ho capito cosa significa qst stringa...cmq noi usiamo il c kn qlk comando del c++ tipo cin cout...
Se non hai ancora avuto modo di vedere l'operatore condizionale, cio quello che ho usato io, puoi tranquillamente usare un if:



int rigamax(int matr[][100], int r, int c)
{
int somma = 0, temp;
for(int i=0; i<r; i++)
{
temp = 0;
for(int j=0; j<c; j++)
temp += matr[i][j];
if(somma < temp)
somma = temp;
}
return somma;
}

oregon
29-12-2008, 22:58
Originariamente inviato da c_nicola
somma = (somma >= temp) ? somma : temp;
non ho capito cosa significa qst stringa...cmq noi usiamo il c kn qlk comando del c++ tipo cin cout...

E' come se scrivessi



if(somma < temp)
somma = temp;


che, fra l'altro, e' piu' chiaro e conciso.

Certe volte usare l'operatore ternario peggiora la situazione ...


P.S. Cerca di scrivere senza abbreviazioni incomprensibili ...

c_nicola
29-12-2008, 23:00
Grazie ora ttt chiaro

sotoli
29-12-2008, 23:02
Originariamente inviato da oregon
Certe volte usare l'operatore ternario peggiora la situazione ...

Hai ragione :).
Ho il vizio di usarlo troppo anche quando sarebbe pi semplice un if. :dh: :dh:

c_nicola
29-12-2008, 23:05
ragazzi scusate e si mi serve l'indice della riga con somma massima? come faccio? Grazie... :)

oregon
29-12-2008, 23:08
Originariamente inviato da c_nicola
ragazzi scusate e si mi serve l'indice della riga con somma massima? come faccio? Grazie... :)

Prova a pensarci un attimo e fai qualche ipotesi ...

c_nicola
29-12-2008, 23:09
eh il problema ke ci sto pensando da oggi...e fra poco ho pure l'esame :bh:

Loading