Bubble sort v5
PROBLEMA
Scrivere un programma in "C" che acquisiti in maniera randomica I valori interi(compresi tra 1 e 10) di una matrice bidimensionale, le cui dimensioni fornite dall’utente n e m (n diverso da m) restituisce a video:
- la stampa della matrice;
- ordina le righe con il bubble sort e stampa a video la matrice;
- ordina le colonne con il bubble sort e stampa a video la matrice.
CODICE SORGENTE
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
//sezione dichiarativa
int righe, colonne, temp;
int i, j, k;
srand(time(NULL));
int somma_diagonale_1=0, somma_diagonale_2=0;
int prodotto_diagonale_1=0, prodotto_diagonale_2=0;
//sezione di input di righe e colonne
printf("Dimensione righe:\n>");
scanf("%i", &righe);
do{
printf("[!] Diverso da %i\nDimensione colonne:\n>", righe);
scanf("%i", &colonne);
}while(colonne==righe);
//dichiarazione vettori
int a[righe][colonne];
int b[righe][colonne];
//caricamento vettori in maniera casuale
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
a[i][j]=rand()%10+1;
}
}
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
b[i][j]=rand()%10+1;
}
}
//output vettori
printf("\nVettore a\n");
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
printf(" %i ", a[i][j]);
}
printf("\n");
}
printf("\nVettore b\n");
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
printf(" %i ", b[i][j]);
}
printf("\n");
}
//ordinamento per righe
for(k=0;k<righe;k++){
for (i=1; i<colonne; i++){
for (j=0; j<colonne-i; j++){
if (a[k][j]>a[k][j+1]){
temp=a[k][j];
a[k][j]=a[k][j+1];
a[k][j+1]=temp;
}
}
}
}
for(k=0;k<colonne;k++){
for (i=1; i<righe; i++){
for (j=0; j<righe-i; j++){
if (b[k][j]>b[k][j+1]){
temp=b[k][j];
b[k][j]=b[k][j+1];
b[k][j+1]=temp;
}
}
}
}
//output righe ordinate
printf("\na - Riordinato Righe\n");
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
printf(" %i ", a[i][j]);
}
printf("\n");
}
printf("\nb - Riordinato Righe\n");
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
printf(" %i ", b[i][j]);
}
printf("\n");
}
//ordinamento per colonne
for(k=0;k<righe;k++){
for (i=1; i<colonne; i++){
for (j=0; j<colonne-i; j++){
if (a[j][k]>a[j+1][k]){
temp=a[j][k];
a[j][k]=a[j+1][k];
a[j+1][k]=temp;
}
}
}
}
for(k=0;k<colonne;k++){
for (i=1; i<righe; i++){
for (j=0; j<righe-i; j++){
if (b[j][k]>b[j+1][k]){
temp=b[j][k];
b[j][k]=b[j+1][k];
b[j+1][k]=temp;
}
}
}
}
//output colonne ordinate
printf("\na - Riordinato Colonne\n");
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
printf(" %i ", a[i][j]);
}
printf("\n");
}
printf("\nb - Riordinato Colonne\n");
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
printf(" %i ", b[i][j]);
}
printf("\n");
}
system("PAUSE");
return 0;
}