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

va rog mult cine se pricepe la programe in c++ sa ma ajute la ex 6

Anexe:

Răspunsuri la întrebare

Răspuns de tudorfilis
1

Răspuns:

#include <iostream>

using namespace std;

int main(){

int n,minim;

cin>>n;

minim=10;

if(n==0)cout<<0;

while(n!=0){

if(minim>n%10)minim=n%10;

n=n/10;

}

cout<<minim;

return 0;

}

Răspuns de andriesboss92
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n, minim;

   cin>>n;

   minim = n % 10;

   if ( n == 0 )

       cout << n;

   while( n != 0 )

   {

       if(minim > n % 10 )

           minim = n % 10;

       n = n / 10;

   }

   cout << minim;

   return 0;

}

Explicație:

Pentru a determina cifra minima a unui numar atribui unei variabile ( sa o numim minim ) ultima cifra a numarului citit ( n % 10 ).

Conditia de verificare if ( n == 0 ) mi se pare inutila deoarece nu exista bloc de instructiuni { .... } in interior astfel incat sa eviti o cifra de 0 afisata in consola. Daca citesti n = 0 o sa afiseze in consola:

00

... Program finished with exit code 0.

Daca dai direct return 0 in acest if nu se va afisa nimic. Logic ar fi trebuit sa fie in carte asa:

if(n==0) { ....................; ....................; }

Sau sa nu existe deloc aceasta conditie.

Pentru a afla cifrele unui numar trebuie sa trunchiezi numarul de la dreapta spre stanga.

Cat timp n este diferit de zero verifici daca variabila minim ( care la inceput reprezenta ultima cifra a numarului n ) este mai mare decat urmatoarea cifra de la dreapta spre stanga. Cazul True al acestei conditii reprezinta faptul ca exista o cifra mai mica decat cea memorata pana in acel punct astfel ca variabila minim va avea acea valoare.

Exemplu:

n = 3412

minim = 2

while ( 3412 != 0 )

{   if ( 2 > 2 ) Fals

n = 3412 / 10 = 341; }

while ( 341 != 0 )

{   if ( 2 > 1 ) True

          minim = 1;

n = 341 / 10 = 34; }

while ( 34 != 0 )

{   if ( 1 > 4 ) Fals

n = 34 / 10 = 3; }

while ( 3 != 0 )

{   if ( 1 > 3 ) Fals

n = 3 / 10 = 0; }

while ( 0 != 0 ) Fals

Afisez minim care area valoarea 1.

Alte întrebări interesante