Se dau doi vectori a si b. Daca a are mai multe elemente decat b, atunci vom elimina ultimele elemente din a pentru a-l egala cu b si invers.
Deni00:
Probabil ca a "egala" vectorul a cu vectorul b inseamna pur si simplu a elimina elementele in plus. Sau inseamna sa facem ca amandoi vectorii sa aiba aceleasi elemente?
Răspunsuri la întrebare
Răspuns de
1
Am pus intrebarea urmatoare:
Daca "egalam" vectorul a cu vectorul b, inseamna ca elimin ultimele elemente din a ca sa aiba atatea elemente cate are vectorul b, sau vice versa.
Sau, dupa ce le elimin, mai "egalez" cei doi vectori, adica sa aiba amandoi aceleasi elemente.
In orice caz, programul este acesta:
#include <iostream>
using namespace std;
int main(){ int m,n,a[100],b[100],i,k; cout<<"m="; cin>>m; cout<<"n="; cin>>n; for(i=1;i<=m;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } for(i=1;i<=n;i++) { cout<<"b["<<i<<"]="; cin>>b[i]; } if(m>n) { cout<<"S-a gasit vectorul a cu mai multe elemente"<<endl; k=m-n; cout<<"Se elimina "<<k<<" elemente din vectorul a"<<endl; m=m-k; for(i=1;i<=m;i++) { cout<<"a["<<i<<"]="<<a[i]<<endl; } for(i=1;i<=n;i++) { cout<<"b["<<i<<"]="<<b[i]<<endl; } } else { if(m<n) { cout<<"S-a gasit vectorul b cu mai multe elemente"<<endl; k=n-m; cout<<"Se elimina "<<k<<" elemente din vectorul b"<<endl; n=n-k; for(i=1;i<=m;i++) { cout<<"a["<<i<<"]="<<a[i]<<endl; } for(i=1;i<=n;i++) { cout<<"b["<<i<<"]="<<b[i]<<endl; } } else { cout<<"Vectorii au acelasi numar de elemente"<<endl; for(i=1;i<=m;i++) { cout<<"a["<<i<<"]="<<a[i]<<endl; } for(i=1;i<=n;i++) { cout<<"b["<<i<<"]="<<b[i]<<endl; } } } return 0;}Pe scurt, cum lucreaza programul:
Presupunem ca cei doi vectori au lungimi diferite, pentru a - m si pentru b - n.
Am citit cei doi vectori, apoi am comparat lungimile lor.
AM LUAT TREI CAZURI:
1) daca vectorul a are mai multe elemente decat b, atunci am pus intr-o variabila intermediara k diferenta lor(k=m-n), si apoi, am egalat lungimea primului vector astfel:
m=m-k (Am eliminat elementele in plus)
Si apoi am afisat elementele celor doi vectori.
2) La fel ca 1), doar ca variabila k primeste valoarea (k=n-m), adica b are mai multe elemente ca a si n = n-k.
Si am afisat vectorii.
3) Ultimul caz, daca au aceeasi lungime, afisez vectorii pur si simplu.
Am adaugat si niste mesaje ca programul sa fie usor de inteles, adica cel care il ruleaza si-i urmareste codul sa inteleaga ce executa si cum face.
Sper ca intelegi. Daca nu, trimite-mi PM.
Bafta la info!
Daca "egalam" vectorul a cu vectorul b, inseamna ca elimin ultimele elemente din a ca sa aiba atatea elemente cate are vectorul b, sau vice versa.
Sau, dupa ce le elimin, mai "egalez" cei doi vectori, adica sa aiba amandoi aceleasi elemente.
In orice caz, programul este acesta:
#include <iostream>
using namespace std;
int main(){ int m,n,a[100],b[100],i,k; cout<<"m="; cin>>m; cout<<"n="; cin>>n; for(i=1;i<=m;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } for(i=1;i<=n;i++) { cout<<"b["<<i<<"]="; cin>>b[i]; } if(m>n) { cout<<"S-a gasit vectorul a cu mai multe elemente"<<endl; k=m-n; cout<<"Se elimina "<<k<<" elemente din vectorul a"<<endl; m=m-k; for(i=1;i<=m;i++) { cout<<"a["<<i<<"]="<<a[i]<<endl; } for(i=1;i<=n;i++) { cout<<"b["<<i<<"]="<<b[i]<<endl; } } else { if(m<n) { cout<<"S-a gasit vectorul b cu mai multe elemente"<<endl; k=n-m; cout<<"Se elimina "<<k<<" elemente din vectorul b"<<endl; n=n-k; for(i=1;i<=m;i++) { cout<<"a["<<i<<"]="<<a[i]<<endl; } for(i=1;i<=n;i++) { cout<<"b["<<i<<"]="<<b[i]<<endl; } } else { cout<<"Vectorii au acelasi numar de elemente"<<endl; for(i=1;i<=m;i++) { cout<<"a["<<i<<"]="<<a[i]<<endl; } for(i=1;i<=n;i++) { cout<<"b["<<i<<"]="<<b[i]<<endl; } } } return 0;}Pe scurt, cum lucreaza programul:
Presupunem ca cei doi vectori au lungimi diferite, pentru a - m si pentru b - n.
Am citit cei doi vectori, apoi am comparat lungimile lor.
AM LUAT TREI CAZURI:
1) daca vectorul a are mai multe elemente decat b, atunci am pus intr-o variabila intermediara k diferenta lor(k=m-n), si apoi, am egalat lungimea primului vector astfel:
m=m-k (Am eliminat elementele in plus)
Si apoi am afisat elementele celor doi vectori.
2) La fel ca 1), doar ca variabila k primeste valoarea (k=n-m), adica b are mai multe elemente ca a si n = n-k.
Si am afisat vectorii.
3) Ultimul caz, daca au aceeasi lungime, afisez vectorii pur si simplu.
Am adaugat si niste mesaje ca programul sa fie usor de inteles, adica cel care il ruleaza si-i urmareste codul sa inteleaga ce executa si cum face.
Sper ca intelegi. Daca nu, trimite-mi PM.
Bafta la info!
Anexe:
Alte întrebări interesante
Matematică,
8 ani în urmă
Spaniola,
8 ani în urmă
Chimie,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă