va rog mult cine se pricepe la programe in c++ sa ma ajute la ex 6
Răspunsuri la întrebare
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:
#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.