Informatică, întrebare adresată de gamesmd398, 8 ani în urmă

Se consideră un tablou unidimensional A[n] de numere întregi, n100. Să se un program care va
sorta elementele în ordine descrescătoare din tabloul A. (Se vor utiliza subprograme fără tip la
citirea, sortarea și afișarea tabloului).
Programul trebuie facut in limbajul C in biblioteca stdio.h.
Mersi

Răspunsuri la întrebare

Răspuns de ploPLO123
1

Răspuns:

Programul arata asa:

int v[100]

void afisare( int n ) {

   int i;

   for ( i = 0; i < n; i ++ ) {

       printf( "%d ", v[i] );

   }

}

int main() {

   int n, i;

   scanf( "%d", &n );

   for ( i = 0; i < n; i ++ ) {

       scanf( "%d", &v[i] );

   }

   sortare();

   afisare( n );

   return 0;

}

Explicație:

pentru sortare, am doua functii: quick_sort si select_sort. O alegi pe care vrei:

void quick_sort( int st, int dr ) {

   int i = st, j = dr, piv = v[( st + dr ) / 2];

   int aux;

   while ( v[i] > piv )

       i ++;

   while ( v[j] < piv )

       j --;

   while ( i < j ) {

       aux = v[i];

       v[i] = v[j];

       v[j] = aux;

       do

           i ++;

       while ( v[i] > piv );

       do

           j --;

       while ( v[j] < piv );

   }

   if ( st < j )

       quick_sort( st, j );

   if ( j + 1 < dr )

       quick_sort( j + 1, dr );

}

void select_sort( int n ) {

   int maxim, i, j, poz, aux;

   for ( i = 0; i < n; i ++ ) {

       maxim = v[i];

       poz = i;

       for ( j = i + 1; j < n; j ++ ) {

           if ( v[j] > maxim ) {

               maxim = v[j];

               poz = j;

           }

       }

       aux = v[i];

       v[i] = v[poz];

       v[poz] = aux;

   }

}


gamesmd398: In prima parte de program, ala primul de sus, este bun?
ploPLO123: trebuie adauga in cod functia de sortare
ploPLO123: iar in loc sa scrii sortare(), scrii numele functiei si pui parametrii respectivi - pentru select_sort( n ), pentru quick_sort( 0, n - 1 )
ploPLO123: int v[100]

void afisare( int n ) {

   int i;

   for ( i = 0; i < n; i ++ ) {

       printf( "%d ", v[i] );

   }

}

int main() {

   int n, i;

   scanf( "%d", &n );

   for ( i = 0; i < n; i ++ ) {

       scanf( "%d", &v[i] );

   }

   sortare();

   afisare( n );

   return 0;

}

Citește mai multe pe Brainly.ro - https://brainly.ro/tema/6823389#readmore
Alte întrebări interesante