Informatică, întrebare adresată de teofancernautan, 9 ani în urmă

Cerinţa
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.

Restricţii şi precizări
numele funcției va fi cmmnr
funcția va avea un parametru reprezentând numărul care se dă
numărul care se dă va fi mai mic decât 1.000.000.000

Eu am facut intr-un fel dar imi da eroare de compilare pe pbinfo in timp ce pe codeblocks imi da rezultatul corect.

#include
using namespace std;
int cmmnr(int n,int v[11])
{
int p,j,aux,i,nr=0;
p=0;
i=1;
do
{
v[i]=n%10;
i++;
n=n/10;
p++;
}while(n!=0);
n=p;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if(v[i] {
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
for(i=1;i<=n;i++)
nr=nr*10+v[i];
return nr;
}
int main()
{
int n,v[11];
cin>>n;
cout<
return 0;
}


hellNo: Care este eroarea?
teofancernautan: celmaimarenr.cpp:35:21: error: too few arguments to function 'int cmmnr(int, int*)'
andriesboss92: cum ai apelat functia in main?
andriesboss92: Nu prea are sens cum ai facut tu... de ce ai pus vectorul ca si parametru?
andriesboss92: Ce numar are problema pe pbinfo?

Răspunsuri la întrebare

Răspuns de andriesboss92
0

#include <iostream>

using namespace std;

int cmmnr(int n)

{

   unsigned v[10],ok=0,i,aux,j;

   while (n!=0)

   {

       v[ok++]=n%10;

       n=n/10;

   }

   for(i=1;i<=ok;i++)

       for(j=i+1;j<ok;j++)

           if(v[i]<v[j])

           {

               aux=v[i];

               v[i]=v[j];

               v[j]=aux;

           }

   n=0;

   for(i=1;i<=ok;i++)

       n=n*10+v[i];

   return n;

}

int main()

{

   int n;

   cin>>n;

   cout<<cmmnr(n);

}


Sa-mi spui numarul problemei sa verific daca problema ia maxim.

Alte întrebări interesante