Sunteți pe pagina 1din 2

1: Se considera  un tablou cu n. elemente numere intregi.

- a) Sa se stearga elementul de pe pozitia x citita de la tastatura


int main()
{int v[50],n,i,x;
cin>>n ;
cin>>x ;
for (i=0;i<n;i++)
cin>>v[i];
for (i=x;i<n-1;i++)
v[i]=v[i+1];
n--;
for (i=0;i<n;i++)
cout<<v[i]<<' ';
return 0;
}

-b) Stergeti toate aparitiile primului element si afisati elementele ramase


int main()
{int v[50],j,n,i,x;
cin>>n ;
for (i=0;i<n;i++)
cin>>v[i];
x=v[0] ;
for (i=0;i<n;i++)
if( v[i]==x)
{for (j=i;j<n-1;j++) // se va sterge elem de pe poz i deplasand stanga
v[j]=v[j+1];
n--; //am eliminat un element, deci n scade
i--; // daca am eliminat un element, trebuie sa raman pe acelasi i, pt. ca s-ar putea sa mai am un
} // element ce trebuie sters care s-a deplasat pe pozitia i(i-- si i++ de la for, va face ca i
// sa ramana acelasi)
for (i=0;i<n;i++)
cout<<v[i]<<' ';
return 0;
}

2. Se considera  un tablou cu n elemente numere intregi. Se insereaza inaintea fiecarui numar impar un 0
int main ()
{int v[100],n,i,j;
cout<<"n="; cin>>n;
for (i=0;i<n;i++)
cin>>v[i];
for (i=0;i<n;i++)
if(v[i]%2!=0)
{for (j=n;j>i;j--) / /deplasare dreapta incepand cu poz. n care este libera
v[j]=v[j-1]; / / dupa deplasare, pe poz i si i+1 este acelasi element
v[i]=0; / / pt inserare dupa nr impar, se pune v[i+1]=0;
i++; / /se inainteaza cu i (in plus fata de for) pt ca s-a inserat un element
n++;}

for (i=0;i<n;i++)
cout<<v[i]<<' ';
return 0;
}
3.Se considera  un tablou cu elemente numere intregi citite din fisier. Sa se construiasca doi vectori, unul cu elementele
pare si celalalt cu elementele impare din vectorul initial.
int main()
{int v[50],a[50],b[50],n,i,j=0,k=0,x;
ifstream f("date.in");
n=0;
while(f>>x)
v[n++]=x; // este echivalent cu v[n]=x ; n++ ;
for (i=0;i<n;i++)
if(v[i]%2==0)
a[j++]=v[i]; // a[j++]= v[i]; este echivalent cu {a[j]=v[i]; j++;}
else
b[k++]=v[i];
for (i=0;i<j;i++) // a va avea j elemente
cout<<a[i]<<' ';
cout<<endl;
for (i=0;i<k;i++) // b are k elemente
cout<<b[i]<<' ';
return 0;}

S-ar putea să vă placă și