Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 100
- ///Jordi Cabrera Carpio 3Aif
- ///Crea Una Matrice Da input e la ri-organizza in un'altra Matrice in Ordine a Spirale Partendo da Basso a Sinistra in senso Orario
- int main()
- {
- ///Dichiarazione Variabili
- ///Elementi Prima Matrice
- int vet[MAX][MAX];///Matrice Normale
- int riga=0;///Altezza
- int colonna=0;///Larghezza
- int r=1;///Coordinata di Altezza
- int c=1;///Coordinata di Larghezza
- ///Elementi Seconda Matrice
- int spirale[MAX][MAX];///Matrice Per Spirale
- int x=0;///Coordinata di Altezza (Normalmente dovrebbe essere L'inverso)
- int y=0;///Coordinata di Larghezza (Normalmente dovrebbe essere L'inverso)
- int colonnaf;///Larghezza
- int rigaf;///Altezza
- ///Contatore
- int n=1;
- ///Fine Dichiarazioni
- ///Programma
- ///Costruzione Matrice
- ///Ampiezza Matrice
- printf("Larghezza Matrice\n");
- while(riga<=0){
- printf("Inserisci il Numero Delle righe\n");
- scanf("%d",&riga);
- if(riga<=0){
- printf("Il Numero deve essere Maggiore di 0\n");
- }
- }
- while(colonna<=0){
- printf("Inserisci il Numero delle colonne\n");
- scanf("%d",&colonna);
- if(colonna<=0){
- printf("Il Numero deve essere Maggiore di 0\n");
- }
- }
- ///Ciclo per inserire dati dentro la Matrice
- while(riga>=r){
- printf("Riga %d Colonna %d\n",r,c);
- scanf("%d",&vet[r][c]);
- ///* RIPORTO *///
- c++;
- if(c>colonna)
- {
- c=1;
- r++;
- }
- ///* FINE RIPORTO *///
- }
- r=1;///ripota a 1 la riga
- ///Mostra Matrice
- printf("I Dati della Matrice Sono\n");
- while(riga>=r){
- printf("[%d]", vet[r][c]);
- ///* RIPORTO PRINTF *///
- c++;
- if(c>colonna)
- {
- printf("\n");
- c=1;
- r++;
- }
- ///* FINE RIPORTO PRINTF *///
- }
- ///Fine costruzione Matrice
- ///inizializzazione
- colonnaf=colonna;
- rigaf=riga;
- r=1;
- x=riga;
- y=1;
- c=1;
- ///Fine inizializzazione
- ///Costruzione Spirale
- ///Prima spirale (contorno)
- ///Su
- while(x>1){
- spirale[x][y]=vet[r][c];
- ///* RIPORTO *///
- c++;
- x--;
- if(c>colonnaf)
- {
- c=1;
- r++;
- }
- ///* FINE RIPORTO *///
- }
- ///Destra
- while(y<colonna){
- spirale[x][y]=vet[r][c];
- ///* RIPORTO *///
- c++;
- y++;
- if(c>colonnaf)
- {
- c=1;
- r++;
- }
- ///* FINE RIPORTO *///
- }
- ///Giu
- while(x<riga){
- spirale[x][y]=vet[r][c];
- ///* RIPORTO *///
- c++;
- x++;
- if(c>colonnaf)
- {
- c=1;
- r++;
- }
- ///* FINE RIPORTO *///
- }
- ///Il Resto Della Spirale
- colonna--;
- {
- while(colonna!=1 && riga!=1)
- {
- ///Sinistra
- while(n!=colonna){
- spirale[x][y]=vet[r][c];
- y--;
- n++;
- ///* RIPORTO *///
- c++;
- if(c>colonnaf)
- {
- c=1;
- r++;
- }
- ///* FINE RIPORTO *///
- }
- riga--;
- n=1;
- ///Su
- if(colonna!=1 && riga!=1){
- while(n!=riga){
- spirale[x][y]=vet[r][c];
- x--;
- n++;
- ///* RIPORTO *///
- c++;
- if(c>colonnaf)
- {
- c=1;
- r++;
- }
- ///* FINE RIPORTO *///
- }
- }
- ///Destra
- if(colonna!=1 && riga!=1){
- colonna--;
- n=1;
- while(n!=colonna){
- spirale[x][y]=vet[r][c];
- y++;
- n++;
- ///* RIPORTO *///
- c++;
- if(c>colonnaf)
- {
- c=1;
- r++;
- }
- ///* FINE RIPORTO *///
- }
- }
- ///Giu
- if(colonna!=1 && riga!=1){
- riga--;
- n=1;
- while(n!=riga){
- spirale[x][y]=vet[r][c];
- x++;
- n++;
- ///* RIPORTO *///
- c++;
- if(c>colonnaf)
- {
- c=1;
- r++;
- }
- ///* FINE RIPORTO *///
- }
- colonna--;
- n=1;
- }
- }
- }
- ///Fine Costruzione Spirale
- ///Mostra Spirale
- spirale[x][y]=vet[r][c];
- x=1;
- y=1;
- printf("--------------------------------\n");
- while(rigaf>=x){
- printf("[%d]", spirale[x][y]);
- ++y;
- ///* RIPORTO PRINTF *///
- if(y==colonnaf+1)
- {
- printf("\n");
- y=1;
- x++;
- }
- ///* FINE RIPORTO PRINTF *///
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement