Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    cambiare indici in una matrice

    ciao a tutti ho un problema,da premettere che sto muovendo i primi passi nella programmazione C, nn riesco a cambiare gli indici di un array. mi spiego

    int ruota_pezzo(int array[3][3]){
    int in ,jn;
    int pezzo1[3][3];//creo un pezzo alternativo
    for (in=0;in<3;in++){ //ciclo per le righe
    for (jn=0;jn<3;jn++) //ciclo per le colonne
    pezzo1[in][jn]=array[3][3]; // e lo rendo uguale al pezzo originale
    }
    for (jn=0;jn<3;jn++){ //ciclo con indici invertiti
    for (in=0;in<3;in++)
    array[3][3]=pezzo1[jn][in]; // e lo rendo uguale al pezzo originale
    }
    return array[jn][in];
    }
    voglio creare una function ke dato un array con un particolare ordine, mi dia un altro array con indici invertiti, proprio come se l array ruotasse.
    posso postare anke il main se serve. grazie in anticipo a tutti

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non so cosa tu voglia dire con "cambiare indici" ma sicuramente quella funzione è sbagliata.

    Tanto per cominciare restituisce un elemento dell'array ... a che serve?

    In secondo luogo, esegui dei cicli utilizzando sempre lo stesso elemento [3][3] dell'array ... a che serve?

    P.S. Usa i tag CODE quando posti del codice.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    hai presente il gioko del tetris? voglio fare una funzione ke dato un array (ke sarebbe il pezzo da girare)mi inverta gli indici in modo tale ke il PEZZO giri. L'array 3 3 è il pezzo generico ke fa da parametro alla funzione (almeno è quello ke voglio fare), per quanto riguarda il return, qui sono in alto mare, la funzione dovrebbe restituirmi l array girato.

  4. #4
    codice:
    void ruota_pezzo(){
    
        int pezzo1[dimpezzo][dimpezzo];//creo un pezzo alternativo
        for (indice_pezzoi=0;indice_pezzoi<dimpezzo;indice_pezzoi++){
            for (indice_pezzoj=0;indice_pezzoj<dimpezzo;indice_pezzoj++)
            pezzo1[indice_pezzoi][indice_pezzoj]=pezzo.array[indice_pezzoi][indice_pezzoj];   // e lo rendo uguale al pezzo originale
        }
        for (indice_pezzoi=0;indice_pezzoi<dimpezzo;indice_pezzoi++){
            for (indice_pezzoj=0;indice_pezzoj<dimpezzo;indice_pezzoj++)
            pezzo.array[indice_pezzoi][indice_pezzoj]=pezzo1[indice_pezzoj][indice_pezzoi];}  // poi lo sostituisco con un pezzo i cui indici sono invertiti in questo modo ottengo
    sono riuscito da solo a correggere il mio codice, ora però ho un altro problema. Quando attivo la function il pezzo gira, poi però quando la riattivo il pezzo mi ritorna nella posizione iniziale, invece voglio ke il pezzo faccia un ulteriore giro. come posso fare? un altra cosa ankora: il pezzo mi gira in senso orario, e se volessi fallo girare in senso antiorario? grazie in anticipo di tutto l aiuto ke potete darmi

  5. #5
    Francesco, la tua funzione è errata. Non stai ruotando la matrice, hai solo invertito le colonne con le righe. Se le inverti di nuovo ritorni alla matrice originale.
    ...

  6. #6
    allora sono proprio in alto mare, xke nn capisco come fare a far ruotare la matrice

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da francesco1985
    allora sono proprio in alto mare, xke nn capisco come fare a far ruotare la matrice
    Scusa, ma quali sono esattamente le operazioni che vuoi fare?

    Ad esempio, una matrice 3 x 3 del tipo

    1 2 3
    4 5 6
    7 8 9

    come dovrebbe diventare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Non capisco cosa intendi per far ruotare la matrice ,se puoi postare un esempio!
    esempio:
    matrice[3][3]

    1 2 3 valori matrice[0][0] [0][1] [0][2]

    4 5 6 valori matrice[1][0] [1][1] [1][2]

    7 8 9 valori matrice[2][0] [2][1] [2][2]

    come dovrebbero ruotare "diventare" ???
    Tecnologia

  9. #9
    deve girare diventando cosi:

    741
    852
    963

    e se rikiamo ankora la function diventa:

    987
    654
    321

  10. #10
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    carino come algoritmo da implementare, ti do un aiuto. 5 è il perno e tutt'intorno è un "cercio" che gira in senso orario di due posizioni

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 © 2024 vBulletin Solutions, Inc. All rights reserved.