Lista Utenti taggati

Risultati da 1 a 3 di 3

Discussione: Ordinamento array bidimensionale in C++

  1. #1
    Utente Attivo
    Data Registrazione
    26-11-10
    Messaggi
    25
    Specifiche del sistema
    Ringraziamenti / Mi Piace
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Predefinito Ordinamento array bidimensionale in C++

    salve raga premetto che sto alle prime acque co ste cose...cmq avrei un problema dovrei ordinare un array bidimensionale per colonne facendolo della stessa dimensione cioe 3x3 mi riesce ma cambia dimensione della riga e della colonna mi perdo un po..potete dare uno sguardo e vedere cosa ho sbagliato nel codice???? magari l'errore è banale ma siccome mi sta dando i nervi sto coso forse non riesco a individuarlo...forse l'errore è quel ciclo for della x???? Io facendomi i calcoli vedo il for e il for b che girano sempre con lo stesso numero pke siccome ho kiuso le parentesi dei for a e b prima e quello della alla fine mi sembra che sto x non incrementa mai cioe girano a vuoto il for a e b....

    #include <stdio.h>
    #include <stdlib.h>
    main(){
    int A[2][3],a,b,max=0,w,x,k[3];

    for(a=0;a<2;a++){
    for(b=0;b<3;b++){
    printf("Inserisci numero:");
    scanf("%d",&A[a][b]);
    }
    }
    system("CLS");


    for(a=0;a<2;a++){
    for(b=0;b<3;b++){
    printf("%d\t",A[a][b]);

    }
    printf("\n");
    }
    printf("\n");
    for(x=0;x<3;x++){
    for(a=0;a<2;a++){
    max=0;
    for(b=0;b<3;b++){
    if(A[b][x]>max){
    max=A[b][x];
    w=b;
    }
    }
    A[w][x]=0;
    k[a]=max;
    }
    b=2;
    for(a=0;a<2;a++){
    A[a][x]=k[b];
    b--;
    }
    }
    for(a=0;a<2;a++){
    for(b=0;b<3;b++){
    printf("%d\t",A[a][b]);

    }
    printf("\n");
    }
    system("PAUSE");
    }
    Ultima modifica di assassins; 09-02-2012 alle 18:23

  2.  
    Stanco della Pubblicità? Registrati

  3. #2
    **************
    Data Registrazione
    24-05-03
    Messaggi
    1,643
    Specifiche del sistema
    Ringraziamenti / Mi Piace
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Predefinito Re: Ordinamento array bidimensionale in C++

    Ciao, non riesco a guardarci ora ma ho cambiato il titolo del topic

  4. #3
    Utente Attivo
    Data Registrazione
    30-03-10
    Località
    Verona
    Messaggi
    323
    Specifiche del sistema
    Ringraziamenti / Mi Piace
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Predefinito Re: Ordinamento array bidimensionale in C++

    Premessa: dal punto di vista dell' efficienza fa veramente schifo ma almeno funziona:
    Codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    
    /*costanti della dimensione della matrice*/
    #define X 3
    #define Y 4
    
    
    /*matrice di interi*/
    int matrix[X][Y];
    
    
    /*prototipi delle funizoni*/
    void initialize();
    void print();
    void order();
    
    
    /*compilo la matrice con valori casuali*/
    void initialize() {
    
    
    	int i, j;
    
    
    	srand(time(NULL));
    	for(i = 0; i < X; i++) {
    		for(j = 0; j < Y; j++) {
    			matrix[i][j] = rand() % 99;
    		}
    	}
    }
    
    
    /*stampo la matrice*/
    void print() {
    
    
    	int i, j;
    
    
    	printf("\n\n");
    	for(i = 0; i < X; i++) {
    		for(j = 0; j < Y; j++) {
    			printf("[%d]", matrix[i][j]);
    		}
    		printf("\n");
    	}
    	printf("\n\n");
    }
    
    
    void order() {
    
    
    	int i, j, k = 0, max, temp;
    	int tempArray[X*Y];
    
    
    	/*trasformo la matrice in un array*/
    	for(i = 0; i < X; i++) {
    		for(j = 0; j < Y; j++) {
    			tempArray[k] = matrix[i][j];
    			k++;		
    		}
    	}
    	/*stampo l' array così ottenuto*/
    	for(i = 0; i < X*Y; i++) printf("[%d]", tempArray[i]);
    	printf("\n");
    
    
    	/*ordino l' array*/
    	for(i = 0; i < (X*Y-1); i++) {
    		max = tempArray[i];
    		for(j = (i+1); j < Y*X; j++) {
    			if(tempArray[j] > max) {
    				max = tempArray[j];
    				temp = j;
    			}
    		}
    		tempArray[temp] = tempArray[i];
    		tempArray[i] = max;
    	}
    
    
    	/*stampo l' array ordinato*/
    	for(i = 0; i < X*Y; i++) printf("[%d]", tempArray[i]);
    	printf("\n");
    				
    	/*ricompongo la matrice*/
    	i = 0; j = 0;
    	for(k = 0; k < X*Y; k++) {
    		matrix[i][j] = tempArray[k];
    		j++;
    		if(j >= Y) {
    			i++;
    			j = 0;
    		}
    	}		
    }
    
    
    /*inizio programma*/
    int main() {
    
    
    	initialize();
    	print();
    	order();
    	print();
    
    
    	return 0;
    }

  5.  
    Stanco della Pubblicità? Registrati

Informazioni Discussione

Utenti che Stanno Visualizzando Questa Discussione

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Torna Su