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

Ajutor va rog cu acest exercitiu!
Fisierul valoare.in contine pe prima linie doua numere naturale nenule: n si c(5 Sa se scrie un program, in limbajul C++, care:
a) scrie pe ecran, in linie, separate printr-un spatiu, toate numerele de pe linia a doua a fisierului, care au ultima cifra(cifra unitatilor) egala cu c.
b) prin intermediul subprogramului rast care inverseaza(rastoarna) si returneaza un numar avand cel mult 8 cifre( ex:123 devine 4321), afiseaza rasturnatele tuturor numerelor impare de pe a doua linie a fisierului.
c) scrie in fisierul valoare.out, separate prin cate un spatiu toate numerele palidrom din sirul dat, care au exact 3 crifre. Un numar este palidom daca palidrom din sirul dat, care au exact 3 cifre. Un numar este palidrom daca de la stanga la dreapta sau de la stanga la dreapta are aceiasi valoare (ex. 187). Daca nu exista astfel de numere in sir, se va scrie in fisier mesajul "Nu exista numere palidrom".


boiustef: ex:123 devine 4321, ai gresit aici? asta e rasturnarea?
boiustef: am intuit ca rasturnatul lui 123 este 321, daca nu e asa concretizezi ...

Răspunsuri la întrebare

Răspuns de boiustef
1

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("valoare.in");

ofstream g("valoare.out");

unsigned int v[1000], n, c, num, copie, i, exista;

unsigned int rast(unsigned int m)

{

   unsigned int r=0;

   while (m)

   {

       r=r*10+(m%10);

       m=m/10;

   }

   return r;

}

bool palindrom(unsigned num)

{

   if (num%10 == num/100) return 1;

   else return 0;

}

int main()

{

   f >> n >> c;

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

   {

       f >> v[i];

   }

   // conditia a)

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

       if (v[i]%10==c) {cout << v[i] << " "; exista=1;}

   if (!exista) cout << "nu exista cu ultima cifra " << c;

   cout << "\n";

   // conditia b)

   cout << "rasturnatele imparelor: \n";

    exista=0;

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

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

           {cout << rast(v[i]) << " "; exista=1;}

   if (!exista) cout << "nu exista rasturnate...";

   cout << "\n";

   // conditia c)

   exista=0;

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

   {

       if (v[i]>100 && v[i]<1000)

       {

           if (palindrom(v[i]))

           {

               exista=1;

               g << v[i] << " ";

           }

       }

   }

   if (!exista) g << "Nu exista numere palidrom";

}


Alte întrebări interesante