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

Din fisierul Date.in se citeste de pe prima liinie o valoare n iar de pe a doua linie n valori reprezentand elementele unui sir. Sa se tipareasca:
a) Pe ecran in ordine inversa elementele sirului
b) Sa se tip suma elementelor negative impare din sir
c) Sa se tip elementele care au exact 2 cifre de 2 (acest punct nu imi iese, nu apare rezultatul, chiar daca l-am facut dupa cum puteti vedea in poza pusa)
» Ce as putea schimba acolo la puncutl c) ca sa imi mearga?

Anexe:

Răspunsuri la întrebare

Răspuns de boiustef
0

Răspuns:

Explicație:

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

   ifstream fin("date.in");

   int a[100],n,i,k,S=0, nr=0;

   fin >> n;

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

   {

       fin >> a[i];

       if (a[i]<0 && a[i]%2)

           S+=a[i];

   }

   for (i=n-1; i>=0; i--)

       cout << a[i] << endl;

   cout << "b) Suma imparelor negative= " << S << endl;

   cout << "c) elementele care au exact 2 cifre de 2: ";

   int x;

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

   {

       x=a[i];

       k=0;

       while (x!=0)

       {

           if (x%10==2) ++k;

           x/=10;

       }

       if (k==2)

       { cout << a[i] << " "; ++nr;}

   }

   if (nr==0) cout << " nu exista...";

   return 0;

}


boiustef: La p.c) Unica eroare pe care o văd este că dacă k=2 tr să afişezi valoarea elementului a[i] şi nu a lui x, care la acel moment devine 0. După codul tău totuşi tr să afişeze 0, nu înţeleg de ce nu a făcut-0. Eu am încercat ca la tine şi apare 0. Am mai adăugat nu există în caz că are loc asta
paulb007: da, multumesc frumos acum mi-am dat seama :D sanatate
boiustef: la fel... şi succese!
Alte întrebări interesante