Salve, questo programma dovrebbe leggere una matrice da un file generico ,calcolare la somma delle singole righe e ordinare crescentemente tali somme ottenute, in seguito stamapare la matrice per valori crescenti della somma. tenete conto del fatto che queste sono le uniche librerie che posso usare e che devo usare allocazione ; j++) {
f >> m[j];
somma = somma + m[j];
}
m[c-1]=somma;
for(int p= 0 ; p< r ; p++){
if(vettore[p]== somma){
verifica = true;
daEliminare[indiceEliminare]=i;
indiceEliminare++,
eliminare=true;
}
}
if(verifica == false){
vettore[numVettore] = somma;
numVettore=numVettore+1;
somma = 0;
}else{
verifica = false;
somma = 0;
}
}
//fine creazione Vettore
cout <<"\n";
cout <<"Matrice in Input: \n";
stampaMat (m, r, c-1);
//inizio elimina riga da matrice
if(eliminare){
// indiceEliminare--;
// if(daEliminare[indiceEliminare]==(r-1)){
// r=r-1;
// }else{
for(int i= 0 ; i< indiceEliminare;i++){
for(int p = daEliminare; p < r-1; p++) {
for(int j = 0; j < c; j++) {
m[p][j]= m[p+1][j];
}
}
daEliminare[i+1]=daEliminare[i+1]-1;
}
//}
r=r-indiceEliminare;
}
//fine elimina riga da matrice
//Ordina Matrice
int temp[c];
for(int i=0 ; i<= r;i++){
int min =i;
for(int j=i+1; j<r-1; j++){
if(m[j][c-1] < m[min][c-1]){ //cambiare questa condizione per invertire l'ordine
min = j;
for(int p=0 ; p<c ; p++){
temp[p]=m[min][p];
m[min][p]=m[p];
m[p]=temp[p];
}
}
}
}
//Fine ordina Matrice
cout <<"\n";
cout <<"Matrice modificata: \n";
stampaMat (m, r, c-1);
//ordina Vettore
int tempo;
for(int i=0; i<r-1; i++)
{
int min = i;
for(int j=i+1; j<r; j++)
if(vettore[j] <vettore[min]) //cambiare questa condizione per invertire l'ordine
min = j;
tempo=vettore[min];
vettore[min]=vettore;
vettore=tempo;
}
//fine ordina vettore
//stampa Vettore
cout <<"Stampo somma per righe: \n";
for (int n=0; n<numVettore; n++)
cout << vettore[n] << " ";
cout << "\n";
f.close();
}
return EXIT_SUCCESS;
}
void stampaMat(int const* const* m, int r, int c) {
for(int i = 0; i < r; i++) {
for(int j = 0; j < c; j++) {
cout << m[j] << " ";
}
cout << endl;
}
}
int** creaMat(int r, int c) {
int i;
int** m;
m = new (int*[r]);
if(m == NULL)
return NULL;
for(i = 0; i < r; i++) {
m = new (int[c]);
if(m[i] == NULL)
return NULL;
}
return m;
}
[/code]