Salve, potreste dirmi dove è che sbaglio, devo mettere in ordine crescente le righe positive, mentre quelle negative in ordine decrescente, fin quando leggo dal file 3x3 mi funziona e ordina come deve, mentre se aumento ad esempio 4x4 mi sballa tutto.
int main()
{
int mat[N][N];
int riga;
int colonna;
struct my_struct vettore[N];
lettura(mat, &riga, &colonna);
stampa(mat, riga, colonna);
ordina(mat, riga, colonna);
diagonale (vettore, mat, riga, colonna);
}
void lettura (int mat[][N], int *riga, int*colonna){
FILE*fp=fopen("input.txt", "r");
int r, c;
fscanf(fp,"%d", &r);
fscanf(fp,"%d", &c);
printf("%d %d\n", r, c);
*riga=r;
*colonna=c;
for (int i=0; i<r; i++){
for (int j=0; j<c; j++){
fscanf(fp,"%d", &mat[i][j]);
}
}
fclose(fp);
}
void stampa(int mat[][N], int riga, int colonna){
for (int i=0; i<riga; i++){
for (int j=0; j<colonna; j++){
printf("%d ", mat[i][j]);
}
printf("\n");
}
}
void ordina(int mat[][N], int riga, int colonna){
int temp=0;
int min=0;
for (int i=0; i<riga; i++){
for (int j=0; j<colonna-1; j++){
if (i%2==0){
if(mat[i][j]>mat[i][j+1]){
temp=mat[i][j];
mat[i][j]=mat[i][j+1];
mat[i][j+1]=temp;
}
}
if (i%2!=0){
if (mat[i][j]<mat[i][j+1]){
temp=mat[i][j];
mat[i][j]=mat[i][j+1];
mat[i][j+1]=temp;
}
}
}
}
printf ("\n");
for (int i=0; i<=riga-1; i++){
for (int j=0; j<colonna; j++){
printf("%d ", mat[i][j]);
}
printf ("\n");
}
}