PDA

View Full Version : [c++] help con le matrici


CioKKoBaMBuZzo
02-11-2007, 04:03
ciao a tutti
devo fare un programmino che mi permetta, data una matrice qualsiasi, di disporre le sue righe in modo che la somma degli elementi delle righe sia in ordine crescente. questo è quello che ho fatto ma non funziona a dovere, diciamo che funziona a metà...qualcuno mi può dare una mano?

#include <iostream>
#include <fstream>
using namespace std;
#define NR 5
#define NC 5

void ordinamentomat (int v[], int n, int mat[][NC], int m) {
int h,i,k,z,j;
for (h=0;h<n-1;h++)
if (v[h]>v[h+1])
for(k=h+1;k>0;k--){
for(i=h;i<h+2;i++)
for(j=0;j<m;j++){
z=mat[i][j];
mat[i][j]=mat[i+1][j];
mat[i+1][j]=z;
}
}
return;
}

int main(){
int i,j,n,som[NR],x;
int matrix1[NR][NC];
fstream lettura;
lettura.open ("matrice.dat",ios::in);
for (i=0;i<NR;i++)
for (j=0;j<NC;j++)
lettura>>matrix1[i][j];
for (i=0;i<NR;i++){
for (j=0;j<NC;j++)
cout<<matrix1[i][j]<<" ";
cout<<endl;
}
for(i=0;i<NR;i++){
som[i]=0;
x=0;
for (j=0;j<NC;j++)
x=x+matrix1[i][j];
som[i]=x;
cout<<"somma degli elementi della "<<i+1<<"° riga: "<<som[i]<<endl;
}
ordinamentomat (som, NR, matrix1, NC);
for (i=0;i<NR;i++){
for (j=0;j<NC;j++)
cout<<matrix1[i][j]<<" ";
cout<<endl;
}
for(i=0;i<NR;i++){
som[i]=0;
x=0;
for (j=0;j<NC;j++)
x=x+matrix1[i][j];
som[i]=x;
cout<<"somma degli elementi della "<<i+1<<"° riga: "<<som[i]<<endl;
}
return 0;
}