Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [C++] Errore Rotazione di una matrice di 90 gradi

    Ragazzi ho un problema.Sto risolvendo questo esercizio e in parte di sono riuscito tranne l'ultimo punto qualcuno mi aiuta?Si realizzi un programma che, mediante opportuni sottoprogrammi, legga da tastiera una matrice di
    interi con segno di dimensioni scelte dall'utente, restituendo la somma degli elementi della prima e
    dell'ultima riga e la differenza tra la prima colonna e l'ultima, la stampi e, qualora la somma tra la
    somma e la differenza sia diversa da 0, sposti gli elementi della stessa in posizione tale che la
    matrice risulti ruotata di 90 gradi in senso orario, e la stampi.

    Grazie.

    P.S come faccio a visualizzare la matrice in stile matematico?
    1 2 3
    4 5 6
    7 8 9

    codice:
    #include <iostream>
    using namespace std;
    
    
    int read (int[3][3],int ,int,int);
    int somma (int[3][3],int,int,int);
    int diff (int[3][3],int,int,int);
    int rotation (int[3][3],int,int,int,int[3][3],int,int);
    int main()
    {const int size=3;
    int m[size][size];
    int f[size][size];
    int i,j,i2,j2;
    read (m,i,j,size);
    cout<<"La somma degli elementi della prima e ultima riga è "<<somma(m,i,j,size)<<endl;
    cout<<"La differenza tra gli elementi della prima e ultima colonna è "<<diff(m,i,j,size)<<endl;
    if( ( somma(m,i,j,size) + diff(m,i,j,size) )!=0)
    {rotation(m,i,j,size,f,i2,j2);}
    
    
    for(i2=0;i2<size;i2++)
    {for(j2=0;j2<size;j2++)
    {cout<<f[i2][j2]<<endl;
    }
    }
    }
    
    
    int read (int k[3][3],int r,int c,int d)
    {cout <<"Inserisci la matrice"<<endl;
    for(r=0;r<d;r++)
    {for(c=0;c<d;c++)
    cin>>k[r][c];
    }
    return k[3][3];
    }
    
    
    int somma(int k[3][3],int r,int c,int d)
    {int sum=0;
    for(r=0;r<d;r++)
    {for (c=0;c<d;c++)
    {if(r==0 || r==d-1)
    sum=sum+k[r][c];
    }
    }
    return sum;
    }
    
    
    int diff(int k[3][3],int r,int c,int d)
    {int dif=2*k[0][0];
    for(r=0;r<d;r++)
    {for(c=0;c<d;c++)
    {if(c==0 || c==d-1)
    dif=dif-k[r][c];
    }
    }
    return dif;
    }
    
    
    
    
    int rotation(int k[3][3],int r,int c,int d,int g[3][3],int r2,int c2)
    {r2=0;
    c2=2;
    for(r=0;r<d;r++ && c2--)
    {for(c=0;c<d;c++ && r2++)
    {g[r2][c2]=k[r][c];
    }
    }
    return g[3][3];
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,246
    come faccio a visualizzare la matrice in stile matematico?
    for(i2=0;i2<size;i2++)
    {
    for(j2=0;j2<size;j2++)
    {
    cout<<f[i2][j2]<<" ";
    }
    cout << endl;
    }
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da oregon Visualizza il messaggio


    for(i2=0;i2<size;i2++)
    {
    for(j2=0;j2<size;j2++)
    {
    cout<<f[i2][j2]<<" ";
    }
    cout << endl;
    }
    }
    ora la stampa grazie.
    P.S anche per l'imput si puo fare?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,246
    No dato che per l'input devi usare il tasto Invio ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Quote Originariamente inviata da oregon Visualizza il messaggio
    No dato che per l'input devi usare il tasto Invio ...
    ah ok.per caso hai avuto modo di vedere la parte della rotazione? in pratica devo fare questo

    1 2 3 1 4 1
    4 5 6 1 5 2
    1 1 1 1 6 3

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,246
    Ma la domanda non era sull'output?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma la domanda non era sull'output?
    si anche sull'output.forse non hai letto bene all'inizio

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,246
    Ho letto bene ... ma pensavo che l'ultimo punto che non sapevi fare fosse proprio l'ultimo che hai detto

    come faccio a visualizzare la matrice in stile matematico?

    Per la rotazione, dato che hai scritto una funzione che dovrebbe ruotare, cosa non va?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ho letto bene ... ma pensavo che l'ultimo punto che non sapevi fare fosse proprio l'ultimo che hai detto

    come faccio a visualizzare la matrice in stile matematico?

    Per la rotazione, dato che hai scritto una funzione che dovrebbe ruotare, cosa non va?
    mi escono valori sballati puo controllare il ciclo for.non riesco a trovare l'errore

  10. #10
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.