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

Să se verifice dacă in șir este: șir constant, șir strict crescător, șir crescător, șir strict descrescător, șir descrescător, șir neordonat. coroana pls


artur99: C++?
passbrain123: si cum sa afiseze mesajele?
lorenamihaela8: Programul va afișa pe ecran unul dintre mesajele sir constant, sir strict crescator, sir crescator, sir strict descrescator, sir descrescator sau sir neordonat. Se va tipări categoria cea mai strictă în care se încadrează şirul.
lorenamihaela8: C++ , da

Răspunsuri la întrebare

Răspuns de passbrain123
2
O varianta C++ ar putea fi:

#include<iostream>#include <fstream>using namespace std;
int main(){    int n, v[100],k=-1 ;    cin>>n;    for (int i=1; i<=n; i++)        cin>>v[i];    int i=1;    while (i<n && v[i]==v[i+1]) {        i++;    }    if (i==n) k=0;
    i=1;    while (i<n && v[i]<v[i+1]) {        i++;    }    if (i==n) k=1;
    i=1;    while (i<n && v[i]>v[i+1]) {        i++;    }    if (i==n) k=2;

    switch (k) {        case 0: cout<<"Sir constant"; break;        case 1: cout<<"Sir crescator"; break;        case 2: cout<<"Sir descrescator"; break;        default: cout<<"Sir neordonat";    }    return 0;}
Anexe:

lorenamihaela8: l am bagat in pbinfo si imi da 0 puncte ...
lorenamihaela8: pe exemplul lor nu merge
artur99: Pune un link la problemă :)) Sau cum se numește problema?
lorenamihaela8: http://www.pbinfo.ro/?pagina=probleme&id=1320
lorenamihaela8: Orice şir se încadrează în următoarele categorii: șir constant, șir strict crescător, șir crescător, șir strict descrescător, șir descrescător sau șir neordonat. Se citește un șir cu n elemente naturale. Să se verifice în ce categorie se încadrează.
lorenamihaela8: problema #1320 ordonat_neordonat de pe pbinfo
artur99: Stai așa puțin
lorenamihaela8: okk
artur99: Pff, stai că îl refac, voiam să îl repar pe ăsta, dar nu reușesc :))
lorenamihaela8: ok. astept. multumesc muult ca incerci
Răspuns de artur99
8
Bazată pe rezolvarea lui Passbrain, puțin îmbunătățită, acum scoate 100 pe pbinfo
#include<iostream>
#include <fstream>
using namespace std;

int main()
{
    int n, v[1009],k=-1 ;
    cin>>n;
    for (int i=1; i<=n; i++)
        cin>>v[i];
    int i=1;
    while (i<n && v[i]==v[i+1])i++;
    if (i==n) k=0;
    else{
    i=1;
    while (i<n && v[i]<=v[i+1])i++;
    if (i==n) k=3;

    i=1;
    while (i<n && v[i]>=v[i+1])i++;
    if (i==n) k=4;
    
    i=1;
    if(k==3||k==4){
        int kk=0;
        while (i<n){if(v[i]==v[i+1])kk++;i++;}
        if(kk){if(k==3)k=1;else k=2;}
    }
    }


    switch (k) {
        case 0: cout<<"sir constant"; break;
        case 1: cout<<"sir crescator"; break;
        case 2: cout<<"sir descrescator"; break;
        case 3: cout<<"sir strict crescator"; break;
        case 4: cout<<"sir strict descrescator"; break;
        default: cout<<"sir neordonat";
    }
    return 0;
}
Alte întrebări interesante