se da n numere naturale.
afisati pentru fiecare numar cifra maxima si minima.
ex: se dau 3 2541 3016 73924
se afiseaza 2051 5 1
3016 6 0
73924 9 2
Răspunsuri la întrebare
Pentru ca nu stiu in ce limbaj de programare vrei raspunsul iti dau ordinea algoritmica necesara pentru a rezolva problema:
1. realizezi doua functii(un subprogram), functii ce iti vor cauta cifra maxima si cifra minima dintr-un numar primit ca parametru
definesti in functia maxm un auxiliar ce va prelua valoarea parametrului si o variabila mx egala cu zero.
cat timp exista auxiliarul, verifici daca mx este mai mic decat restul auxiliarului la 10, daca este mx= restul respectiv. tot aici dupa verificarea asta, imparti auxiliarul la 10 sa scapi de ultima cifra.
Functia maxm va returna maximul
la fel faci si cu minimul, insa mn=10 si verifici daca mn este mai mare decat restul. Va returna minimul
Dupa care in functia main citesti numerele dintr-un fisier cu un while, formand un vector de lungime n( variabila pe care o initializezi cu zero inainte) pe cpp ar fi asa:
n=0;
ifstream fin("p1.txt");
while(!fin.eof()){fin>>v[n++];} n--;
Dupa care parcurgi vectorul si aplici functiile de la pct.1 la fiecare element al vectorului.
Programarea este bine sa o inveti logic, altfel se numeste doar pierdere de timp daca doar copiezi coduri si le memorezi mecanic.
int ciframn(int n){
int cifmin=10,aux=n;
while(aux){
if(cifmin>aux%10){cifmin=aux%10;}
aux/=10;
} return cifmin;}
int ciframx(int n){
int cifmax=0,aux=n;
while(aux) {
if(cifmax<aux%10){cifmax=aux%10;}
aux/=10; }
return cifmax;}
int main(){
int n,arr[100];
cout<<"n=";cin>>n;
cout<<"\nIntroduceti elementele array-ului\n";
for(int j=0;j<n;j++){cin>>arr[j];}
for(int i=0;i<n;i++){cout<<arr[i]<<"\t"<<ciframn(arr[i])<<"\t"<<ciframx(arr[i])<<endl;}
cout<<endl; return 0;}