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
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]<<" ";
}
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
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Istorie,
9 ani în urmă
Matematică,
9 ani în urmă
Fizică,
9 ani în urmă
Matematică,
9 ani în urmă