#include
#include
vacío principal()
{
#include
#include
{
clrscr ();
int int temp, i, j, k, n, no, posición, p [20], dígitos, a [100];
cout << "Ingrese el número \ n";
cin >> no;
cout << "\ nIntroduzca el número de operaciones de intercambio \ n";
cin >> k;
n = no;
para (i = 0; n! = 0; i ++) n = n / 10;
dígitos = i; i- = 1;
n = no;
mientras que (n! = 0)
{
a [i -] = n% 10;
n = n / 10;
}
int z = -1;
para (i = 0; i <dígitos && k! = 0; i ++)
{posición = i;
para (j = i + 1; j <dígitos; j ++)
if (a [j]> a [i] && n == 0)
{
p [0] = j; z = 0;
n ++;
}
más si (a [j]> a [i] && a [j]> a [posición])
p [++ z] = j;
n = 0;
if (z> = 0 && a [i]> = a [i + 1])
{
temp = a [p [0]];
a [p [0]] = a [i];
a [i] = temp;
k–;
}
si no (z> = 0 && a [i] <a [i + 1])
{temp = a [p [z]];
a [p [z]] = a [i];
a [i] = temp;
k–;
}
z = -1;
}
para (i = 0; i <dígitos; i ++) cout << a [i];
getch ();
}
PD: agregué la parte int z pero es una parte esencial del programa.
Sin él, el programa no funcionará siempre cuando haya dígitos repetidos en
el entero de k dígitos dado