PDA

View Full Version : [c++] strano problema


CioKKoBaMBuZzo
03-11-2007, 14:32
ho scritto un programma sul computer di casa usando borland 5.5 ed editplus 2 (windows xp).
ho copiato il codice sul compilatore della scuola (nedit, sistema linux fedora) e il programma misteriosamente non funziona più...non mi dà errori in fase di compilazione, ma quando lo eseguo non fa quello che dovrebbe fare...

ecco il programma: data una matrice qualsiasi, il programma dispone le righe in modo che la somma degli elementi delle righe sia crescente


#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=n;h>0;h--)
for(k=n;k>0;k--)
if(v[k]<v[k-1]){
for(j=0;j<m;j++){
z=mat[k][j];
mat[k][j]=mat[k-1][j];
mat[k-1][j]=z;
}
z=v[k];
v[k]=v[k-1];
v[k-1]=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;
}

cionci
03-11-2007, 14:46
Dagli un po' di indentazione e mettilo nel tag code del forum la prox volta.
Così ad un prima lettura non vedo errori particolari.

71104
03-11-2007, 15:56
se puoi facci un esempio di output errato che ottieni a scuola (con anche il relativo input ovviamente :D)

CioKKoBaMBuZzo
03-11-2007, 17:01
si scusa la prossima volta scriverò in modo più leggibile :D

comunque

input: 1 564 1 4 76 8 2 4 76 987 5 4 3 4 9 65 4 3 7 9 7 7 8 5 4

output:


1 564 1 4 76
8 2 4 76 987
5 4 3 4 9
65 4 3 7 9
7 7 8 5 4
somma degli elementi della 1° riga: 646
somma degli elementi della 2° riga: 1077
somma degli elementi della 3° riga: 25
somma degli elementi della 4° riga: 88
somma degli elementi della 5° riga: 31
1 564 1 4 76
3 5 4 4 31
8 2 4 76 987
5 7 7 8 5
65 4 3 7 9
somma degli elementi della 1° riga: 646
somma degli elementi della 2° riga: 47
somma degli elementi della 3° riga: 1077
somma degli elementi della 4° riga: 32
somma degli elementi della 5° riga: 88


adesso sono di fretta e la matrice non sarà molto allineata, però più o meno dovrebbe essere leggibile

CioKKoBaMBuZzo
04-11-2007, 15:03
ok ho messo sotto forma leggibile il codice...

nessuno sa dirmi che cosa c'è di sbagliato? a voi funziona?

CioKKoBaMBuZzo
06-11-2007, 20:41
ehm...:help:

edit: non voglio sapere se c'è qualcosa di sbagliato, bensì perchè lo stesso codice a casa mia funziona e a scuola no...

cionci
06-11-2007, 22:02
Dacci anche il contenuto del file matrice.dat da cui fai le prove...

CioKKoBaMBuZzo
06-11-2007, 23:17
l'ho messo...
input: 1 564 1 4 76 8 2 4 76 987 5 4 3 4 9 65 4 3 7 9 7 7 8 5 4

cionci
07-11-2007, 08:19
E' sbagliato lo scambio. Sia delle somme che delle righe ;)