Creare matrice grafica con C++

di il
3 risposte

Creare matrice grafica con C++

Salve, stavo cercando di creare una matrice con due cicli for e volevo anche rappresentarla con dei quadrati adiacenti (simile ad una tabella)... ma non riesco proprio a farlo

3 Risposte

  • Re: Creare matrice grafica con C++

    Parti dalla matrice ... posta il codice ...
  • Re: Creare matrice grafica con C++

    L'idea è quella di scambiare i valori massimi con quelli minimi di una matrice. Il programma funziona, ma volevo trovare un modo carino per rappresentare la matrice alla fine con i valori scambiati.
    Questo è il codice:



    #include<iostream>
    #include<stdlib.h>

    using namespace std;

    int mat[100][100]; //dichiarazione matrice
    int maxr[100]; //vettore per posizione delle righe (minimo)
    int minr[100]; //vettore per posizione delle colonne (minimo)
    int maxc[100]; //vettore per posizione delle righe (massimo)
    int minc[100]; //vettore per posizione delle colonne (massimo)
    int i; //indice righe della matrice
    int j; //indice colonne della matrice
    int a; //indice vettore per posizione delle righe (minimo)
    int b; //indice vettore per posizione delle colonne (minimo)
    int c; //indice vettore per posizione delle righe (massimo)
    int d; //indice vettore per posizione delle colonne (massimo)
    int minimo; //valore minimo
    int massimo=0; //valore massimo
    int n; //numero righe della matrice
    int m; //numero colonne della matrice
    int e; //variabile usata per confrontare il minimo e massimo con ogni casella della matrice
    int contmin=0; //contatore numeri minimi
    int contmax=0; //contatore numeri massimi

    int main()
    {

    cout<<"Inserisci il numero delle righe della matrice"<<endl;
    cin>>n;
    cout<<"Inserisci il numero delle colonne "<<endl;
    cin>>m;

    for (i=0;i<n;i++)
    {

    for(j=0;j<m;j++)
    {

    cout<<"Inserisci l'elemento di posizione "<<i<<"-"<<j<<endl;
    cin>>mat[j];

    if(i==0 && j==0)
    {

    minimo=mat[j];

    }
    else if (minimo>mat[j])
    {

    minimo=mat[j];
    }

    if(massimo<mat[j])
    {

    massimo=mat[j];

    }
    }

    }

    i=0;
    j=0;

    a=0;
    b=0;
    for(i=0;i<n;i++)
    {

    for(j=0;j<m;j++)
    {

    if(minimo==mat[j])
    {

    minr[a]=i;
    minc=j;
    a++;
    b++;
    contmin++;
    }

    }

    }
    c=0;
    d=0;
    for(i=0;i<n;i++)
    {

    for(j=0;j<m;j++)
    {

    if(massimo==mat[j])
    {


    maxr[c]=i;
    maxc[d]=j;
    c++;
    d++;
    contmax++;
    }

    }

    }
    i=0;
    j=0;
    a=0;
    b=0;
    for(e=0;e<contmin;e++)
    {

    i=minr[a];
    j=minc;

    mat[j]=massimo;
    a++;
    b++;

    }
    c=0;
    d=0;
    for(e=0;e<contmax;e++)
    {

    i=maxr[c];
    j=maxc[d];

    mat[j]=minimo;
    c++;
    d++;

    }
    for(i=0;i<n;i++)
    {

    for(j=0;j<m;j++)
    {

    cout<<mat[i][j]<<"---"<<endl;

    }

    }
    system("pause");
    return 0;

    }
  • Re: Creare matrice grafica con C++

    Posta il codice tra tag CODE e ben indentato altrimenti non si capisce nulla.

    In ogni caso, nella linea

    cout<<mat[j]<<"---"<<endl;

    la endl non va, ma andrebbe in un'altra cout dopo la prima for.

    Se la prima for visualizza una linea, solo alla sua conclusione devi andare a capo.
Devi accedere o registrarti per scrivere nel forum
3 risposte