👤

a) Scrieţi definiţia completă a unui subprogram cu numele ordonat care primeşte prin intermediul singurului său parametru, n, un număr natural cu cel mult 9 cifre şi returnează valoarea 1 dacă numărul are cifrele ordonate strict descrescător, de la stânga la dreapta,şi valoarea 0 în caz contrar. (4p.) b) Scrieţi un program C/C++ care citeşte de pe prima linie a fişierului text numere.in un număr natural n (0

Răspuns :

A)
int ordonat(int n)
{
   int ok = 1, u, cif;
   u = n %10;
   n = n / 10;
   while(n != 0)
    {
       cif = n % 10;
       if(cif <= u)
         {
            ok = 0;
            break;
        }
        u = cif;
        n = n / 10;
   }
   return ok;
}
B)
#include <bits/stdc++.h>
using namespace std;
int nr, i, x;
int ordonat(int n)
{
   int ok = 1, u, cif;
   u = n %10;
   n = n / 10;
   while(n != 0)
    {
       cif = n % 10;
       if(cif <= u)
         {
            ok = 0;
            break;
        }
        u = cif;
        n = n / 10;
   }
   return ok;
}
int main()
{
    ifstream f("numere.in");
    f >> nr;
    for(i = 1; i <= nr; i ++)
     {
         f >> x;
         if(ordonat(x) == 1) cout << x << " ";
     }
    return 0;
}

Succes!