24.11.2.24011120. Napisati generičku funkciju “Izdvajanje“ sa četiri parametara: “A”, “N”, ”Prvi” i ”Drugi”. ”A” je niz elemenata proizvoljnog tipa, za koji ćemo pretpostaviti da sadrži barem dva različita elementa, a ”N” je broj elemenata u tom nizu. Funkcija treba da pronađe prva dva elementa po veličini, i da smjesti pronađene vrijednosti u parametre ”Prvi” i ”Drugi”. Na primjer, neka je dat sljedeći niz
int Niz[10] = {6, 7, 4, 1, 6, 5, 3, 8, 5, 9};
Tada poziv funkcije
Izdvajanje(Niz, 10, P, Q);
treba da u promjenljive ”P” i ”Q” (naravno, uz pretpostavku da su propisno deklarisane) smjesti redom vrijednosti 1 i 3, jer su dvije najmanje vrijednosti po veličini u ovom nizu upravo brojevi 1 i 3. Napisati i kratki testni program u kojem ćete demonstrirati napisanu funkciju.
Opis rješenja:
Listing programa:
#include <iostream>
#include <conio.h>
using namespace std;
template<typename tip>
template<typename tip1,typename tip2>
tip izdvajanje(tip A[],int N,tip &prvi,tip &drugi){
prvi=A[0];
for(int i=1;i<N;i++)
if(A[i]<prvi)prvi=A[i];
drugi=A[0];
for(int i=1;i<N;i++)
if(A[i]>drugi)drugi=A[i];
for(int i=0;i<N;i++)
if(A[i]>prvi&&A[i]<drugi)drugi=A[i];
}
int main(){
int n;
cin>>n;
const int c(n);
int niz[c];
for(int i=0;i<c;i++)cin>>niz[i];
int br1,br2;
izdvajanje(niz,c,br1,br2);
cout<<endl<<br1<<endl<<br2;
getch();
return 0;
}
Ispis na ekranu:
Riješeni zadaci 2 Index
|
|