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

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

Răspuns de PersoanaPersonala
0

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;}


alexutaa: imi trebuie in c++ cu funcții
Alte întrebări interesante