Informatică, întrebare adresată de Dutsa1, 9 ani în urmă

Se consideră tabloul unidimensional A [1..n] cu elemente numere întregi. Să se compună un program care va transcrie la începutul tabloului B [1..n] în ordine crescătoare elementele lui nenegative, apoi, în continuare, pe cele negative in ordine descrescătoare. De exemplu, avînd A =(4;-8;7;-6;0;-7;5), se va obtine B=(0;4;5;7;-6;-7;-8).

Răspunsuri la întrebare

Răspuns de ardyarde
2
#include <iostream>
using namespace std;

int main()
{
   int n,i,j,schimbat,k=0;
   cout<<"Cate elemente?"<<endl;
   cin>>n;
   int A[n],B[n];
   cout<<"Introduceti "<<n<<" elemente: "<<endl;
   for(i=0;i<n;i++)
    cin>>A[i];
   i=0;
   do{
    schimbat=0;
    for(i=0;i<n-1;i++)
      if(A[i]>A[i+1])
         {
          swap(A[i],A[i+1]);
          schimbat=1;
         }
   }while (schimbat);
   for(i=0;i<n;i++)
    if(A[i]>=0)
    {
       B[k]=A[i];
       k++;
    }
   for(i=n-1;i>=0;i--)
      if(A[i]<0)
      {
       B[k]=A[i];
       k++;
      }
   for(i=0;i<n;i++)
    cout<<B[i]<<" ";
}
Alte întrebări interesante