Salut!
Nu stiu sa fac problema asta:
Cerinţa
Se citește un vector cu n elemente, numere naturale distincte. Să se afișeze elementele cuprinse între elementul cu valoarea minimă și cel cu valoare maximă din vector, inclusiv acestea.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.
Date de ieşire
Programul afișează pe ecran elementele cerute, separate prin exact un spațiu.
Restricţii şi precizări
1 ≤ n ≤ 1000
elementele vectorului vor fi mai mici decât 100.000
Exemplu
Intrare
5
7 9 6 2 8
Ieșire
9 6 2
Eu am scris codul asta, gaseste minimul si maximul, dar nu pot afisa elementele dintre ele.
#include
using namespace std;
int main(){
int N;
cin>>N;
int v[100];
int i;
for (i = 1; i <= N; i++)
cin>>v[i];
int maxim = v[1];
int minim = v[1];
for (i = 2; i <= N; i++)
{
if (maxim < v[i])
maxim = v[i];
if (minim > v[i])
minim=v[i];
}
for (int i=minim; i<=maxim;i++)
cout <
return 0;
}
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int main()
{
int n,v[100],i,max,min,i_max,i_min,j;
cout<<"n=";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"v["<<i<<"]=";
cin>>v[i];
}
max=v[1];
min=v[1];
i_max=1;
i_min=1;
for(i=2;i<=n;i++)
if(v[i]>max)
{
max=v[i];
i_max=i;
}
else
if (v[i]<min)
{
min=v[i];
i_min=i;
}
if (i_min<i_max)
for(j=i_min;j<=i_max;j++)
cout<<v[j]<<" ";
else
for(j=i_max;j<=i_min;j++)
cout<<v[j]<<" ";
return 0;
}
PS: Programul ruleaza si afiseaza corect solutia in CodeBlocks.
100p pe pbinfo (problema ta a fost ca ai gresit la ultima parte, tu ai parcurs vectorul de la elementul minim la elementul maxim.. nu de la pozitia lor)
#include<iostream>
using namespace std;
int main(){
int n, i, v[1000];
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
int max=v[1];
int min=v[1];
int pozmin=1;
int pozmax=1;
for(i=2;i<=n;i++)
{
if(v[i]>max) {
max=v[i];
pozmax=i;
}
if(v[i]<min) {
min=v[i];
pozmin=i;
}
}
if(pozmin>pozmax) {
int aux=pozmin;
pozmin=pozmax;
pozmax=aux;
}
for(i=pozmin;i<=pozmax;i++)
cout<<v[i]<<" ";
}