Programma base sulle matrici in C++

di il
4 risposte

Programma base sulle matrici in C++

Traccia: L'utente inserisce una matrice N x M composta da numer interi. il programma scambia le righe pari con quelle dispari. le dimensioni della matrice vengono scelte dall'utente tra i valori massimi fissati all interno del programma (10x20)

Questo è il programma che ho scritto
Il problema e che non mi scambia la prima riga con l'ultima e neanche le centrali

#include <iostream>
using namespace std;
void creamat(int m[][20], int nr, int nc);
void visualizzamat(int m[][20], int nr, int nc);
int main ()
{
		int mat[10][20],i,j,n,m,appo=0, pippo=0;
    do{
		cout<<"Quante righe deve avere la matrice"<<endl;
		cin>>n;
	}while(n<0||n>10);
	do{
		cout<<"Quante colonne deve avere la matrice?"<<endl;
		cin>>m;
	}while(m<0||m>20);
	creamat(mat, n,m);
	visualizzamat(mat, n,m);
	for(i=0;i<n;i++)
	  for(j=0;j<m;j++)
	  if(i%2==0){
	  appo=mat[i][j];
	  mat[i][j]=mat[i+1][j];
	  mat[i+1][j]=appo; 	
	  }
	 else if(i%2!=0){
	 
	  appo=mat[i][j];
	  mat[i][j]=mat[i+1][j];
	  mat[i+ 1][j]=appo;}
	 visualizzamat(mat, n,m);

system ("pause");
return 0;
}
void creamat(int m[][20], int nr, int nc)
{
	cout<<"Inserisci i numeri"<<endl;
	for(int i=0;i<nr;i++)
	  for(int j=0;j<nc;j++)
	     cin>>m[i][j];
		 }
void visualizzamat(int m[][20], int nr, int nc)
{
	cout<<"La matrice contiene i seguenti numeri:"<<endl;
	for(int i=0;i<nr;i++)
    {
    	cout<<endl;
    	for(int j=0;j<nc;j++)
    	 cout<<m[i][j]<<" ";
	}
}

4 Risposte

  • Re: Programma base sulle matrici in C++

    Usa i tag CODE per il codice perché, come avrai potuto notare, non si capisce nulla
  • Re: Programma base sulle matrici in C++

    Non ho ancora controllato il codice, ma sei cosciente del fatto che "scambiare le righe pari con quelle dispari" non è una consegna chiara?
    Ipotizziamo di avere una matrice di 4 righe:

    R0
    R1
    R2
    R3

    la matrice finale dovrà essere

    R1
    R0
    R3
    R2

    oppure

    R3
    R2
    R1
    R0

    ?? E cosa succede se il numero di righe è dispari?
  • Re: Programma base sulle matrici in C++

    Lo so se fosse stato chiaro e semplice non avrei chiesto mi trovo bloccato perché c'è un problema nella traccia
    Comunque credo che per una matrice quadrata la matrice finale sarà
    R1
    R0
    R3
    R2
    Poi per quelle dispari non so davvero
  • Re: Programma base sulle matrici in C++

    Ipotizziamo allora che la traccia dica di scambiare le coppie di righe successive a partire dalla prima e, in caso di righe dispari, di ignorare la riga finale.

    A questo punto concentrati nell'implementare la seguente funzione:
    void scambia_righe(int m[R][C], int i_1, int i_2);
    che scambia le righe di indice i_1 e i_2 di una matrice m di R righe e C colonne.
    Fatto ciò il resto va da sé!
Devi accedere o registrarti per scrivere nel forum
4 risposte