Răspuns :
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
//Functie care afiseaza numerele pare de pe poz. impare
void afisare_pare_impare(int* v, int n) {
for (int i = 0; i < n; i++) {
if (i % 2 == 0 && v[i] % 2 == 0) cout << v[i] << " ";
}
cout << endl;
}
//Functie care afiseaza sirul dupa interschimabrea minumului cu maximul
void afisare_min_max(int* v, int n) {
int poz_minim = 0, poz_maxim = 0;
//Cautare min si max
for (int i = 1; i < n; i++) {
if (v[i] > v[poz_maxim]) poz_maxim = i;
if (v[i] < v[poz_minim]) poz_minim = i;
}
//Interschimbare
swap(v[poz_maxim], v[poz_minim]);
//Afisare sir
for (int i = 0; i < n; i++)
cout << v[i] << " ";
cout << endl;
}
//Functie care returneaza cifra de control
int cif_control(int n) {
if (n == 0) return 0;
if (n % 9 != 0) return n % 9;
return 9;
}
//Functie care afiseaza cifra de control pentru fiecare numar
void afisare_control(int* v, int n) {
for (int i = 0; i < n; i++)
cout << cif_control(v[i]) << " ";
}
int main() {
ifstream fin("atestat.in");
int n;
//Citire numar de valori fisier, alocare spatiu
fin >> n;
int *v = new int[n];
//Citire valori din fisier
for (int i = 0; i < n; i++) fin >> v[i];
//Subpunct A
afisare_pare_impare(v, n);
//Subpunct B
afisare_min_max(v, n);
//Subpunct C
afisare_control(v, n);
//Eliberare memorie
delete[] v;
return 0;
}
► NOTA
Am folosit algoritm eficient pentru calculul cifrei de control, bazat pe restul impartirii numarului la 9
Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, vă rugăm să ne contactați. Revenirea dumneavoastră ne va bucura, iar pentru acces rapid, nu uitați să ne salvați la favorite!