👤

De ce nu apare nimic dupa ce introduc valori?

#include

using namespace std;

int main(){
long v[1001];
unsigned n,i,max=0,min=100000,x,y;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
for(i=1;i<=n;i++)
{
if(v[i]>max)
{max=v[i];
y=i;}
if(v[i] {min=v[i];
x=i;}}
for(i=x;i<=y;i++)
cout<<v[i]<<' ';


Răspuns :

Vezi ca la conditia de minim nu ai scris tot, poate doar aici cand ai transcris: if (v[i] < min). Referitor la faptul ca nu iti afiseaza nimic, am înțeles din algoritm ca vrei sa afisezi numerele cuprinse intre cel mai mic si cel mai mare element din vecrorul v, si exista o situatie in care nu ti afiseaza nimic: atunci cand minimul este plasat in vecror dupa maxim.
Exemplu: v[] = { 4, 5, 2, 98, 1, 7, -3, 8}
- in acest caz for- ul tau va porni de la pozitia 6 (sau 7 daca incepi de la 1) si va merge pana la pozitia 3 (sau 4 daca incepi de la 1), cu alte cuvinte, nu se va intra in blocul for
- rezolvare: inainte de afisare compara cele doua pozitii si pornește afisarea de la cea mai mica