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

Se considera tabloul unidimensional A[1..n] cu elemente numere intregi.Sa se compuna un program care va transcrie la inceputul tabloului B[1..n] in ordine descrescatoare elementele lui negative,apoi,in continuare,pe celenenegative,in odine crescatoare prin metoda inserctiei.De exemplu,avand A =(4,-8,7,-6,0,-7,5),se va obtine B= (-6,-7,-8,0,4,5,7). Va rog mult

C++

Răspunsuri la întrebare

Răspuns de pigwimgs
1
#include <iostream>

using namespace std;
int a[501],b[501],i,n,j,k,x,p;
int main()
{
   cin>>n;
   for(i=1;i<=n;i++)
   {
       cin>>a[i];
       if(a[i]<0){
        k++;
        b[k]=a[i];
       }
   }
   for(i=1;i<k;i++)
    for(j=i+1;j<=k;j++)
    if(b[i]<b[j])swap(b[i],b[j]);
    p=k;
   for(i=1;i<=n;i++)
    if(a[i]>=0)
   {
       k++;
       b[k]=a[i];
   }
   for(i=p;i<k;i++)
    for(j=i+1;j<=k;j++)
    if(b[i]>b[j])swap(b[i],b[j]);

    for(i=1;i<=k;i++)
        cout<<b[i]<<" ";
}


Alte întrebări interesante