Problema scambio righe in una matrice

di il
2 risposte

Problema scambio righe in una matrice

Buona sera a tutti... ho un problema con questo esercizio che dice " data una matrice di numeri interi positivi memorizzare in una matrice di uscita la matrice d'ingresso con le prime due righe scambiate" vi scrivo il mio codice:

#include <iostream>
#include <cstdlib>
using namespace std;
//Esercizio 25 pag 443
int main()
{
    int i,j,n,m;
    int v[10][10];
    int a[10][10];
    cout<<"Da quante righe sara' composta la matrice (Max 10)?:";
    cin>>n;
    cout<<"Da quante colonne (Max 10)?:";
    cin>>m;
    cout<<"Inserire gli elementi all'interno della matrice:"<<endl;
    for (i=0;i<n;i++)
    {
        for (j=0;j<m;j++)
        {
            cin>>v[i][j];
            }
        }
    for (i=0;i<n;i++)
    {
        for (j=0;j<m;j++)
        {
            a[i][j]=0;
            }
        }
        for (i=(n-1);i<n;i++)
        {
            for (j=0;j<m;j++)
            {
                a[i][j]=v[i][j];
                }
            }
    for (i=0;i<(n-1);i++)
    {
        for (j=0;j<m;j++)
        {
            a[i][j]=v[(n-(n-1))-i][j];
            }
        }
    cout<<"La matrice dalle prime due righe scambiate e' questa:"<<endl;
    for (i=0;i<n;i++)
    {
        for (j=0;j<m;j++)
        {
            cout<<'\t'<<a[i][j]<<'\t';
            }
        cout<<endl;
        }
    system ("Pause");
    return EXIT_SUCCESS;
}
il programma funziona tranquillamente se ho una matrice ad esempio 3x4 ma nn appena provo ad aumentare le righe il programma scambia sempre le prime due righe e mantiene integra l'ultima ma le righe centrali mostreranno dei valori strani mi potete aiutare? grazie a tutti

2 Risposte

  • Re: Problema scambio righe in una matrice

    Perche fai mille cicli for non comprendo. una cosa così non può bastare?
    
    for(i = 0; i < n; i++)
    {
          for(j = 0; j < m; j++)
          {
               if(i == 0)
               {
                   a[i][j] = v[i+1][j];
               }
               else if(i == 1)
              {
                   a[i][j] = v[i-1][j];
              }
              else
              {
                    a[i][j] = v[i][j];
              }
          }
    }
    
    Unico ciclo. Ci saranno anche modi migliori ma non sono stato lì a strizzare il cervello.
  • Re: Problema scambio righe in una matrice

    Certamente è molto meglio di quello che ho fatto io grazie mille
Devi accedere o registrarti per scrivere nel forum
2 risposte