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

Am mare nevoie de ajutor cu aceste doua probleme, dau coroana !!​

Anexe:

Răspunsuri la întrebare

Răspuns de thePoint01
0

Răspuns:

2.

#include <iostream>

using namespace std;

int main(){

   int n,i=0,v[11];

   cin>>n;

   while(n){

       ++i;

       v[i]=n%10;

       n/=10;

   }

   //a

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

       for(int k=j+1;k<=i;++k){

           if(v[j]<v[k])

               swap(v[j],v[k]);

       }

   }

   for(int j=1;j<=i;++j)

       cout<<v[j];

   cout<<endl;

   //b

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

       for(int k=j+1;k<=i;++k){

           if(v[j]==v[k]){

               for(int m=j;m<i;++m){

                   v[m]=v[m+1];

               }

               i--;

           }

           if(v[j]<v[k])

               swap(v[j],v[k]);

       }

   }

   for(int j=1;j<=i;++j)

       cout<<v[j];

   return 0;

}

3.

#include <iostream>

#include <fstream>

using namespace std;

fstream f("numere.in");

ofstream f2("numere.out");

int n,v[1000000];

void QuickSort(int st,int dr){

       int m = (st + dr) / 2;

 int i = st , j = dr, d = 0;

 while(i < j)

 {

  if(v[i] > v[j])

  {

   swap(v[i],v[j]);

   d = 1 - d;

  }

  i += d;

  j -= 1 - d;

 }

 QuickSort(st , i - 1);

 QuickSort(i + 1 , dr);

}

int main(){

   int i=0;

   while(f){

       i++;

       f>>v[i];

   }

   QuickSort(1,i);

   for(int j=1;j<=i;++j)

       f2<<v[i]<<" ";

   f.close();

   f2.close();

   return 0;

}

Explicație:

Alte întrebări interesante