Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (0<n≤100)şi cele3*n elemente ale tabloului unidimensional v, fiecare element fiind un număr natural cu celmult patru cifre fiecare. Tabloul este împărţit în trei zone, cu câte n elemente: prima zonăconţine primele n elemente din tablou, a doua zonă conţine următoarele n elemente dintablou, restul elementelor fiind în zona a treia. Programul va interschimba primul elementpar (dacă există) al zonei unu cu ultimul element impar (dacă există) al zonei trei şi apoi vascrie pe prima linie a fişierului text BAC.TXT toate elementele tabloului, separate prin câteun spaţiu. În cazul în care unul dintre aceste două elemente, care urmează a fiinterschimbate, nu există, programul nu va efectua nici o modificare asupra tabloului dat.Exemplu: pentru n=3 şi v=(prima imagine), fişierul BAC.TXT va conţine:1 9 3 4 5 6 7 8 2 ( a doua imagine )
Anexe:


Răspunsuri la întrebare
Răspuns de
3
Singurul caz in care schimbul de elemente nu este posibil este acela in care n=1, pentru ca atunci nu avem nici un element par in prima treime. De la n=2 incolo, intotdeauna primul element par va fi elementul 2 din sir.
Pe de cealalta parte, in ultima treime avem doua cazuri
daca n este par, atunci ultimul element impar este penultimul(pentru ca ultimul este par)
daca n este impar, atunci ultimul element impar este ultimul din sir
Codul este mai jos
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ofstream obac("BAC.TXT");
int n,i,temp,secund;
cin>>n;
int v[3*n];
for(i=0;i<3*n;i++){
cin>>v[i];
}
if(n>1){
if(n%2==0){
secund=3*n-2;
}
else{
secund=3*n-1;
}
temp=v[1];
v[1]=v[secund];
v[secund]=temp;
}
for(i=0;i<3*n;i++){
obac<<v[i]<<" ";
}
return 0;
}
Pe de cealalta parte, in ultima treime avem doua cazuri
daca n este par, atunci ultimul element impar este penultimul(pentru ca ultimul este par)
daca n este impar, atunci ultimul element impar este ultimul din sir
Codul este mai jos
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ofstream obac("BAC.TXT");
int n,i,temp,secund;
cin>>n;
int v[3*n];
for(i=0;i<3*n;i++){
cin>>v[i];
}
if(n>1){
if(n%2==0){
secund=3*n-2;
}
else{
secund=3*n-1;
}
temp=v[1];
v[1]=v[secund];
v[secund]=temp;
}
for(i=0;i<3*n;i++){
obac<<v[i]<<" ";
}
return 0;
}
andriesboss92:
Imi poti spune te rig rolul acestui if..
secund=3*n-2;
}
else{
secund=3*n-1;
}
daca n este impar, atunci ultimul element impar este ultimul din sir
Alte întrebări interesante
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă