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 descrescătoare elementele lui
negative, apoi ,în continuare, pe cele nenegative în ordine crescătoare.
De exemplu, având A = (4, -8, 7, -6, 0, -7, 5), se va obţine B = (-6, -7, -8, 0, 4, 5, 7).
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
int i,j,a[100],b[100],n,k,c;
int main ()
{ cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=1;i<=n;i++)
if(a[i]<0){k++;b[k]=a[i];
for(j=i;j<n;j++)a[j]=a[j+1];n--;}
for(i=1;i<k;i++)
for(j=i+1;j<=k;j++)
if(b[i]<b[j]){
c=b[i];
b[i]=b[j];
b[j]=c;
}
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(a[i]>a[j])
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
for(i=1;i<=n;i++)
{
k++;
b[k]=a[i];
}
for(i=1;i<=k;i++)
cout<<b[i]<<" ";
}
using namespace std;
int i,j,a[100],b[100],n,k,c;
int main ()
{ cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=1;i<=n;i++)
if(a[i]<0){k++;b[k]=a[i];
for(j=i;j<n;j++)a[j]=a[j+1];n--;}
for(i=1;i<k;i++)
for(j=i+1;j<=k;j++)
if(b[i]<b[j]){
c=b[i];
b[i]=b[j];
b[j]=c;
}
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(a[i]>a[j])
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
for(i=1;i<=n;i++)
{
k++;
b[k]=a[i];
}
for(i=1;i<=k;i++)
cout<<b[i]<<" ";
}
SherlockHolmess:
Am uitat sa mentionez, problema se cere rezolvata in limbajul Pascal.
Alte întrebări interesante
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă