Accedi

Selection sort v3

PROBLEMA

Scrivere un programma che caricato un array bidimensionale 3x3 di interi in modalita’ randomica(valori compresi tra zero e nove):

  1. stampare a video la matrice;
  2. scrivere quanti zeri sono memorizzati nella matrice ed in quale posizione;
  3. ordinare (selection sort) solo le righe dispari;
  4. stampare a video la matrice con le righe dispari ordinate.

CODICE SORGENTE

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

int main(int argc, char *argv[]){
 int i, j, k;
 int temp;
 int righe=3, colonne=3;
 int a[righe+1][colonne+1];
 srand(time(NULL));
 for(i=0;i<righe;i++){
  for(j=0;j<colonne;j++){
   a[i][j]=rand()%10;
  }
 }
 system("cls");
 printf("\nPrimo punto\n");
 for(i=0;i<righe;i++){
  for(j=0;j<colonne;j++){
   printf("[%i]\t", a[i][j]);
  }
  printf("\n");
 }
 system("PAUSE");
 printf("\nSecondo punto\n");
 for(i=0;i<righe;i++){
  for(j=0;j<colonne;j++){
   if(a[i][j]==0)
    printf("Posizione %i,%i[%i]\t", i, j, a[i][j]);
  }
  printf("\n");
 }
 system("PAUSE");
 for(k=0;k<righe;k++){
  if(k%2==0){
   for(i=0;i<colonne-1;i++){
    for(j=i+1;j<colonne;j++){
     if(a[k][j]<a[k][i]){
      temp=a[k][i];
      a[k][i]=a[k][j];
      a[k][j]=temp;
     }
    }
   }
  }
 }
 printf("\nTerzo punto\n");
 for(i=0;i<righe;i++){
  for(j=0;j<colonne;j++){
   printf("[%i]\t", a[i][j]);
  }
  printf("\n");
 }
 return 0;
}