Salutare !
Am o problema de rezolvata care aparent pare a fi foarte simpla.
"Să se scrie o funcție C++ care să returneze cel mai mare număr care se poate scrie cu cifrele unui număr natural transmis ca parametru."
Eu m-am gandit sa inserez cifrele nr. intr-un vector iar apoi sa il sortez descrescator. Pare foarte simplu, dar nu inteleg de ce nu imi afiseaza un rezultat corect. Dupa compilare imi apare mereu rezultatul "0" daca n>9.
int cmmnr(int n)
{
int v[100],i,t,k=0;
if(n<=9)
return n;
while(n){
t = n%10;
n/=10;
k++;
}
while(n){
for(i=0;i<k;i++)
v[i] = n%10; // copiez cifrele lui n in vector
n/=10;
}
//sortez elem vectorului descrescator
int aux,ok;
do{
ok = 1;
for(i=0;i<n-1;i++)
if(v[i]<v[i+1]){
ok = 0;
aux = v[i];
v[i] = v[i+1];
v[i+1] = aux;
}
}while(ok!=1);
for(i=0;i<k;i++)
return v[i]; // afisez
}
Unde am gresit ?
Va multumesc anticipat !