Informatică, întrebare adresată de 974Vlad, 8 ani în urmă

PUNCTE MAXIME -
C++/ materie de clasa aX-a
se da un vector, maxim 100 valori.

se vor citi elementele din el, dupa care toate valorile din el care au ultima cifra 7 se vor muta la sfarsit

pana maine, merci. fara sort, bublesort

Răspunsuri la întrebare

Răspuns de andrei750238
1

#include <iostream>

using namespace std;

int main(){

int x,asc=1,desc,i, v[100], nr;

cin >> x;

desc=x;

for(i=1;i<=x;i++){

 cin >> nr;

 if(nr%10==7){

  v[desc--]= nr;

 }

 else v[asc++] = nr;

}

for(i=1;i<=x;i++) cout << v[i] << " ";

}


974Vlad: Multumesc de raspuns, poti explica putin pasii?
andrei750238: Prin "for(i=1;i<=x;i++) cin >> nr;" se citesc numerele, pana ajungem la x numere citite
andrei750238: Acum avem doi indici, unul care incepe la inceputul vectorului si pe masura ce creste se duce spre final, si apoi mai avem unul fix invers (incepe din spate si se indreapta catre inceputul vectorului)
andrei750238: desc = Indice descrescator (de la final)
Pe asta il folosim sa memoram numerele care se termina in 7 la final

Asc = Indice crescator (parcurge de la inceput spre final)
Pe asta il folosim sa punem numerele care NU se termina in 7 la inceputul vectorului

In problema asta noi punem elemente in vector si la inceput si la sfarsit, in functie de cum se termina vectorul
andrei750238: v[desc--]= nr;
Se poate scrie ca
v[desc] = nr;
desc--

IAR
v[asc++] = nr;
Se poate scre ca :
v[asc] =nr;
asc++
974Vlad: multumesc frumos, nu stiu cum dau fundita dar merci
Alte întrebări interesante