Accedi

Bubble sort v4

PROBLEMA

Scrivere un programma in “c” che lette da tastiera due matrici nxn di interi, le cui dimensioni sono fornite dall’utente:

  1. stampa a video le due matrici;
  2. calcola la matrice somma c=a+b;
  3. stampa a video la matrice somma;
  4. calcola la matrice prodotto c=axb;
  5. stampa a video la matrice prodotto;
  6. ordina ogni riga della matrice somma e della matrice prodotto e le stampa a video(bubble sort).

CODICE SORGENTE

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
 int n, temp;
 int i, j, k;
 printf("Dimensione n:\n>");
 scanf("%i", &n);
 int a[n][n];
 int b[n][n];
 int c[n][n];
 int d[n][n];
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   printf("Elemento vettore a (%i,%i)", i+1, j+1);
   scanf("%i", &a[i][j]);
  }
 }
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   printf("Elemento vettore b (%i,%i)", i+1, j+1);
   scanf("%i", &b[i][j]);
  }
 }
 printf("\nVettore a\n");
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   printf(" %i ", a[i][j]);
  }
  printf("\n");
 }
 printf("\nVettore b\n");
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   printf(" %i ", b[i][j]);
  }
  printf("\n");
 }
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   c[i][j]=a[i][j]+b[i][j];
  }
 }
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   d[i][j]=a[i][j]*b[i][j];
  }
 }
 printf("\nSomma - NON riordinato\n");
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   printf(" %i ", c[i][j]);
  }
  printf("\n");
 }
 printf("\nMoltiplicazione - NON riordinato\n");
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   printf(" %i ", d[i][j]);
  }
  printf("\n");
 }
 for(k=0;k<n;k++){
  for (i=1; i<n; i++){
   for (j=0; j<n-i; j++){
    if (c[k][j]>c[k][j+1]){
     temp=c[k][j];
     c[k][j]=c[k][j+1];
     c[k][j+1]=temp;
    }
   }
  }
 }
 for(k=0;k<n;k++){
  for (i=1; i<n; i++){
   for (j=0; j<n-i; j++){
    if (d[k][j]>d[k][j+1]){
     temp=d[k][j];
     d[k][j]=d[k][j+1];
     d[k][j+1]=temp;
    }
   }
  }
 }
 printf("\nSomma - Riordinato\n");
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   printf(" %i ", c[i][j]);
  }
  printf("\n");
 }
 printf("\nMoltiplicazione - Riordinato\n");
 for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   printf(" %i ", d[i][j]);
  }
  printf("\n");
 }
 system("PAUSE");
 return 0;
}