Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    5
    infatti mi sono accorto...
    la matrice di destinazione è della stessa grandezza di quella originale( sempre [3][3]). quindi la matrice deve proprio "ruotare su se stessa".

    Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da toni123 Visualizza il messaggio
    infatti mi sono accorto...
    la matrice di destinazione è della stessa grandezza di quella originale( sempre [3][3]). quindi la matrice deve proprio "ruotare su se stessa".

    Come posso fare?
    codice:
    #include <stdio.h>
    
    #define MAX 5
    
    #define max(i) (MAX-(i)-1)
    
    void stampa_matrice(int mat[MAX][MAX]) {
        int i, j;
        printf("\n################################################################################");
        for(i = 0; i < MAX; ++i) {
            printf("\n");
            for(j = 0; j < MAX; ++j) {
                printf("%4d", mat[i][j]);
            }
        }
        printf("\n################################################################################");
    }
    
    int main(void) {
        int a[MAX][MAX];
        int b[MAX][MAX];
        int i, j, *ptmp, itmp;
        
        //inizializzazione matrice
        ptmp = (int *)a;
        for(i = 0; i < MAX*MAX; ++i) {
            *(ptmp+i) = i+1;
        }
        //rotazione in nuova matrice
        stampa_matrice(a);
        for(i = 0; i < MAX; ++i) {
            for(j = 0; j < MAX; j++) {
                b[j][max(i)] = a[i][j];
            }
        }
        stampa_matrice(b);
        //rotazione in-place
        stampa_matrice(a);
        for(i = 0; i < MAX - 1; ++i) {
            for(j = i; j < max(i); ++j) {
                itmp = a[i][j];
                a[i][j] = a[max(j)][i];
                a[max(j)][i] = a[max(i)][max(j)];
                a[max(i)][max(j)] = a[j][max(i)];
                a[j][max(i)] = itmp;
                
            }
        }
        stampa_matrice(a);
        return 0;
    }
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    5
    grazie mille.

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da toni123 Visualizza il messaggio
    grazie mille.
    Prego ma vedi di capire come funziona e se hai problemi nella comprensione chiedi
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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