Scrieți definiția completa a funcției stergere, care primește doi parametri: un tablou
unidimensional si numărul efectiv de elemente din tablou(n<=100) si care șterge
elementul minim din tablou. Apelați funcția in programul principal.
Răspunsuri la întrebare
Salut!
Functia in C++
//presupunem ca elementele sunt indexate de la 1 la n
void sterge(int v[], int& n) {
int mini = v[1], poz = 1; //cautam elementul minim si ii salvam pozitia
for (int i = 2; i <= n; ++i) {
if (v[i] < mini) {
mini = v[i];
poz = i;
}
}
for (int i = poz + 1; i <= n; ++i) { //stergerea propriu-zisa
v[i - 1] = v[i];
}
n--;
}
Apelarea intr-un program
#include <iostream>
using namespace std;
void sterge(int v[], int& n) {
int mini = v[1], poz = 1;
for (int i = 2; i <= n; ++i) {
if (v[i] < mini) {
mini = v[i];
poz = i;
}
}
for (int i = poz + 1; i <= n; ++i) {
v[i - 1] = v[i];
}
n--;
}
int main() {
int n, a[1001];
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
}
sterge(a, n);
for (int i = 1; i <= n; ++i) {
cout << a[i] << " ";
}
return 0;
}
Explicatie:
Stergerea propriu-zisa este de fapt mutarea elementului minim la sfarsitul vectorului, evident mutand si elementele de dupa el cu o pozitie in spate, iar la final scazand lungimea vectorului pentru a nu mai afisa ultimul element.