AJUTOR!!
#1883
Cerința
Se dă un șir cu n elemente, numere naturale. Să se afișeze, pentru fiecare element din șir, valoarea din șir aflată după acesta și mai mare decât acesta (Următorul Element Mai Mare). Dacă o asemenea valoare nu există, se va afișa -1.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului.
Date de ieșire
Programul va afișa pe ecran cele n valori determinate, separate prin câte un spațiu.
Restricții și precizări
1 ≤ n ≤ 1000
elementele șirului vor fi mai mai mici decât 1.000.000
Exemplu
Intrare
5
3 4 3 5 1
Ieșire
4 5 5 -1 -1
dan3s20:
mda se pare ca nu pot sa-l lipesc
int n,i,j;
long a[1000];
bool ok;
{
cin>>a[i];
}
ok=false;
for(int j=i+1;j<n;j++){
if(!ok){
{
cout<<a[j]<<" ";
ok=true;
}
}
}
if(!ok){
cout<<-1;
}
}
return 0;
}
Răspunsuri la întrebare
Răspuns de
1
declari sirul A de 1000elemente de tipul long/longint
n,i,j declarat intreg
ok boolean
citesti n
pentru i=0 cat timp i<n ,i++(for de la 1 la n daca esti in pascal)
citeste a[i]
pentru i=0 pana i<n executa i++
{
ok=false
pentru j=i+1 pana la j<n executa j++
{
daca ok=false atunci
{
daca a[j]>a[i]
{
scrie a[j]
ok=true
}
}
}
daca ok=false
scrie -1
}
etc...
vreo preferinta de limbaj anume?
n,i,j declarat intreg
ok boolean
citesti n
pentru i=0 cat timp i<n ,i++(for de la 1 la n daca esti in pascal)
citeste a[i]
pentru i=0 pana i<n executa i++
{
ok=false
pentru j=i+1 pana la j<n executa j++
{
daca ok=false atunci
{
daca a[j]>a[i]
{
scrie a[j]
ok=true
}
}
}
daca ok=false
scrie -1
}
etc...
vreo preferinta de limbaj anume?
Răspuns de
12
Ti-am facut eu o sursa in C++. Suuces!
#include <iostream>
using namespace std;
int n, i, j, k, v[1005], sol[1005], maxx;
int main()
{
cin >> n;
for(i = 1; i <= n; i ++)
cin >> v[i];
for(i = 1; i < n; i ++)
{
if(v[i] < v[i + 1]) sol[i] = v[i + 1];
else
{
maxx = v[i];
for(j = i + 1; j <= n; j ++)
{
if (v[j] > maxx)
{
maxx = v[j];
break;
}
}
if(maxx == v[i]) sol[i] = -1;
else sol[i] = maxx;
}
}
sol[n] = -1;;
for(i = 1; i <= n; i ++)
cout << sol[i] << " ";
return 0;
}
#include <iostream>
using namespace std;
int n, i, j, k, v[1005], sol[1005], maxx;
int main()
{
cin >> n;
for(i = 1; i <= n; i ++)
cin >> v[i];
for(i = 1; i < n; i ++)
{
if(v[i] < v[i + 1]) sol[i] = v[i + 1];
else
{
maxx = v[i];
for(j = i + 1; j <= n; j ++)
{
if (v[j] > maxx)
{
maxx = v[j];
break;
}
}
if(maxx == v[i]) sol[i] = -1;
else sol[i] = maxx;
}
}
sol[n] = -1;;
for(i = 1; i <= n; i ++)
cout << sol[i] << " ";
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă