Informatică, întrebare adresată de blajutalexandra, 9 ani în urmă

Cine mă poate ajuta?
1) Se introduc de la tastatura n numere. Sa se afișeze cea mai mare cifra a fiecărui număr.
2) Se citesc n numere de la tastatura . Sa se afiseze fiecare număr obținut prin eliminarea tuturor cifrelor 0.
Am nevoie de algoritmul de rezolvare cu pentru și cât timp


CRG: C/C++/Pascal? Poti folosi subprograme?
blajutalexandra: Doar in c++
HariSeldon: "Se introduc de la tastatura nu numere." inseamna ca se citeste o valoare in format string?
HariSeldon: Pe diseara iti scriu

Răspunsuri la întrebare

Răspuns de HariSeldon
2
/*1) Se introduc de la tastatura n numere. Sa se afișeze cea mai mare cifra a fiecărui număr. */

#include <iostream>

using namespace std;

// Functia primeste o valoare x si returneaza cea mai mare cifra a sa

int cifraMax(int v)
{    int cMax = 0;   
     while(v !=0)   
          {       
              if(v%10>cMax)           
                   cMax = v%10;       
              v/=10;   
          }   
        return cMax;
}
// Functia primeste o valoare n, citeste n valorii pentru fiecare valoare afiseaza cifra max

void raspuns(int n)
{    int i,x;   
     for(i=1;i<=n;i++)   
     {       
        cout<<"Dati o valoare ";       
        cin>> x; 
       cout<<"Cifra maxima a valorii "<<x<<" este "<<cifraMax(x)<<endl;
    }
}
int main()
{
    int n;
    cout <<"Dati n ";
    cin>>n;
    raspuns(n);
}





/*2) Se citesc n numere de la tastatura . Sa se afiseze fiecare număr obținut prin eliminarea tuturor cifrelor 0. */
#include <iostream>
using namespace std;
// Functia primeste o valoare elimina din compozitie orice cifra egala cu 0, returneaza valoarea nou formata
// var p - primeste acea putere a lui 10 necesara pentru reformarea valorii
// var cv - primeste o copie dea lui v
int eliminaZero( int v )
{    int p=1, cv;
    cv = v;
    while(cv!=0) 
   {
        p=p*10;
        if(cv%10==0)
        {
            v = (v/p) * (p/10) + v%(p/10);
            p/=10;
        }
        cv /= 10;
    }
    return v;}
void raspuns (int n)
{
    int i,x;
    for(i=1;i<=n;i++)
    {
        cout<<"Dati o valoare ";
        cin>>x;
        cout<<"Valoarea "<<x<<" rescrisa fara cifra 0 este "<< eliminaZero(x)<<endl;
    }
}
int main(){
    int n;
    cout<<"Dati n ";
    cin>>n;
    raspuns (n);
}

Sper sa fi fost de folos pentru mai multe detalii txt me!

Alte întrebări interesante