Informatică, întrebare adresată de sikesjack1, 8 ani în urmă

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

Răspuns de adrianalitcanu2018
2

#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.


sikesjack1: Ia 60 de puncte pe pb info, nu stiu unde ar fi gresala :(
GabiAlex99: Salut. Da-mi nr la problema, ti-o rezolv eu.
Răspuns de GabiAlex99
0

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]<<" ";

}


sikesjack1: Am inteles acum. Mersi
Alte întrebări interesante