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

Fișierul atestat.in conține cel mult 100 de numere naturale, separate prin câte un spațiu, având fiecare cel mult 8 cifre.

Să se scrie un program, în limbajul Pascal/C/C++, care:

a) scrie pe ecran, în linie, separate prin câte un spațiu, numerele pare din șir, aflate pe poziții impare. Dacă nu există astfel de numere în șir, se va scrie pe ecran mesajul "NU EXISTĂ ".

b) prin intermediul subprogramului cifre verifică dacă un număr natural cu cel mult 8 cifre, primit ca parametru, are prima cifră egală cu ultima, scrie pe ecran, toate numerele din șir care au prima cifră egală cu ultima cifră. Dacă nu există astfel de numere în șir se va afișa mesajul "NU EXISTĂ".

c) scrie în fișierul atestat.out media aritmetică dintre cel mai mic și cel mai

mare număr din șir.

Exemplu:

atestat.in: 10
13 797 25 303 482 12321 72 46 282 31

atestat.out: a) 2
b) 72
Fisierul atestat.out conține:
c) 13 797 31

VĂ ROG E URGENT!!!!
DAU COROANĂ

Răspunsuri la întrebare

Răspuns de Bogdqn
1

Răspuns:

#include <ifstream>

#include <fstream>

using namespace std;

ifstream f("atestate.in");

ofstream g("arestate.out");

int main()

{  

  int v[101],n,i,uc,o,y,p,max,min,s;

  float ma;

  f>>n;  //nr. de elemente ce vor fi citite

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

     f>>v[i];

  ok=0;

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

   {

      if(i%2!=0)

         if(v[i]%2==0)

           {

               cout<<v[i]<<' ';

               ok++;

           }

   }

  if(ok==0)

     cout<<"NU EXIZTA NR PARE PE LOCURILE IMPARE"<<endl;

       ok=0;

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

   {

      y=v[i];

      o=0;

      while(y!=0)

       {

          uc=y%10;

          o=o*10+uc;

          y=y/10;

       }

      p=o%10;

      uc=v[i]%10;

      if(p==uc)

       {

          cout<<v[i]<<' ';

          ok++;

       }

   }

  if(ok==0)

     cout<<"NU EXISTA"<<endl;

  //determinare max   max=v[1];

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

     if(v[i]>max)

        max=v[i];

  //determinare min

  min=v[1];

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

     if(v[i]<min)

        min=v[i];

  s=min+max;

  ma=s/2.0;

  g<<ma;

  return 0;

}


msmb: Imediat iti dau si coroana...daca ma mai poti ajuta m-as bucura...le fel tot acelasi punctaj
Bogdqn: Momentan sunt in orele online. Dar dupa, s-ar putea sa pot ! Multumesc.
Alte întrebări interesante