👤
a fost răspuns

2. In fișierul NUMERE.IN se afla numere naturale (mai mici sau egale cu
1000). Se cere:
a)Să se tipărească în ordine descrescatoare toate numerele distincte de 2
cifrecare nu se găsesc în fișier
b)Să se tipărescă numărul(numerele) care au apărut în fișier de un număr
par de ori
c) Să se tipărească cel mai mic număr cu cifre distincte care se poate
forma din cifrele apărute în numerele citite din fișier


Răspuns :

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("NUMERE.IN");

int c[1001], cifre[10];

int main(){

   int n, Min=0, i;

   while(f>>n){

       // PENTRU PUNCTUL A&B

       c[n]++;

       // PENTRU PUNCTUL C

       if(n==0) cifre[0]=1;

       while(n>0){

           cifre[n%10] = 1;

           n/=10;

       }

   }

   f.close();

   // PUNCTUL A

   for(i=99; i>=10; i--)

       if(c[i]) cout<<i<<" ";

   cout<<endl;

   // PUNCTUL B

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

       if(c[i]%2==0 && c[i]>0) cout<<i<<" ";

   cout<<endl;

   // PUNCTUL C

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

       if(cifre[i]){

           Min = Min*10+i;

           if(cifre[0] && i==1)

               Min = Min*10;

       }

   cout<<Min;

   return 0;

}

Explicație: