Informatică, întrebare adresată de CiortescuMihai7, 9 ani în urmă

Cerința sir_zigzag ---> #1329 pbinfo (ajutor am nevoie de 100 pct.)

Un şir se numeşte şir zigzag, dacă monotonia elementelor pe poziții succesive alternează între strict crescător și strict descrescător, adică a[1]>a[2]a[4] ... sau a[1]a[3]
Se citeşe un şir cu n elemente. Să se verifice dacă este şir zigzag.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele șirului.

Date de ieșire
Programul va afișa pe ecran unul dintre mesajele DA sau NU după cum șirul dat este şir zigzag sau nu.

Restricții și precizări
3 ≤ n ≤ 1000
0 ≤ elementele şirului ≤ 1 000 000 000

Exemplu 1:
Intrare:
5
1 5 3 7 5

Ieșire:
DA

Explicație
Avem relațiile 1 < 5 > 3 < 7 > 5, deci e vorba de un șir zigzag.

Exemplu 2:
Intrare:
5
4 3 5 1 2

Ieșire:
DA

Explicație
Avem relațiile 4 > 3 < 5 > 1 < 2, deci e vorba de un șir zigzag.

Exemplu 3:
Intrare:
5
4 3 2 1 2

Ieșire:
NU

Explicație
Primele trei elemente ale șirului nu își schimbă monotonia, deci nu e șir zigzag.

Răspunsuri la întrebare

Răspuns de stefaniamar
7
//Am facut problema asta acum 11 secole ca ofranda pentru superba mea profesoara de informatica *ofteaza*

anyway here's the code


#include <iostream>

using namespace std;
int n,ok,i;
int main()
{
    cin>>n;
    int a[n];
    for (i=0;i<n;i++)
    {
        cin>>a[i];
    }
    ok=1;
    for (i=0;i<n-2;i++)
    {
        if (a[i]<a[i+1])
        {
            if (a[i+1]<a[i+2])
                ok=0;
        }
        else
        {
            if (a[i]>a[i+1])
            {
                if (a[i+1]>a[i+2])
                    ok=0;
            }
        }
        if (a[i]==a[i+1])
            ok=0;
    }
    if (ok==0)
        cout<<"NU";
    else cout<<"DA";

    return 0;
}
Alte întrebări interesante