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

Bună ziua! Îmi poate spune cineva ce este greșit în răspunsul meu?Pe pbinfo primesc 50 de puncte .

Anexe:

boiustef: nu era în plus dacă indicai numărul sau numele problemei...
boiustef: la codul tău poţi obţine pentru ok valoarea 1 dacă numai ultimele două elemente vor fi egale...
silviabursuc1: E problema 501.
boiustef: tr. să verifici dacă cumva dai de neegalitatea a două vecine, atunci ok=0

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n, i, prec, num, egale=1;

   cin >> n;

   cin >> prec;

   for (i=2; i<=n; ++i)

   {

       cin >> num;

       if (num!=prec) egale=0;

       prec=num;

   }

   if (egale==1) cout << "DA";

   else cout << "NU";

   return 0;

}

Explicație:

nu am generat vector... evit asta dacă e posibil...

folosesc două variabile pentru şirul de numere, prec, pentru precedent şi num, pentru următorul introdus. Din start variabila egale=1, de parcă deacum toate sunt egale. Dacă la un moment oarecare prec!=num, atunci egale=0 şi rămâne cu această valoare până la sfârşit, unde se verifică ce valoare are varabila egale. Dacă a rămas 1, reese că toate sunt egale, altfel, nu.

p.s. Eu am pus un comentariu, că la codul tău, ok=1 când întîlneşte o egalitate (poate fi şi unica) de elemente vecine egale.

Sper că am fost explicit... Succese!

Dacă apar întrebăr, întreabă şi ţi se va răspunde...


silviabursuc1: Am înțeles.Mulțumesc!
boiustef: cu plăcere. Asta e f.important, să înţelegem... :)))
Alte întrebări interesante