Dev - C++ - [AYUDA] Ejercicio Funcion que retorne...

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

[AYUDA] Ejercicio Funcion que retorne...

Publicado por Diego (1 intervención) el 05/10/2018 01:12:37
Hola necesito ayuda con un programa que cree una funcion que retorne un numero nuevo generado a partir de N donde cada 2 numeros se den vuelta los digitos asuma que N es par

Ejemplo: 347249 > 432794

La cosa es que yo llevo una parte del programa pero solo logro invertir los ultimos dos digitos del numero, ya despues para invertir los otros no se me ocurre nada y ya llevo 1 dia estancado, les dejo lo que llevo de programa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int funcion(int num)
{
   int n=1, aux=0, aux2=0,
 
   while(n=!0)
   {
    aux= num%10
    n= num/10
    cont ++
    aux2= num%10
    n= num/10
    nuevo= aux * 10 + aux2
   }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de abZer0x
Val: 33
Ha disminuido su posición en 4 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

[AYUDA] Ejercicio Funcion que retorne...

Publicado por abZer0x (10 intervenciones) el 06/10/2018 09:04:54
Hola Diego, hice algunas modificaciones en tu código, espero sea lo que buscabas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
using namespace std;
 
int funcion(int num)
{
    int nuevo = 0,
        aux2 = 0,
        aux = 0,
        cifras = 0,
        i = 0,
        tmp = 1;
    while (num > 0)
    {
        aux = num % 10;
        num /= 10;
        aux2 = num % 10;
        num /= 10;
        i = 0;
        tmp = 1;
        while (i < cifras)
        {
            tmp *= 10;
            i++;
        }
        nuevo += ((aux * 10) + aux2) * tmp;
        cifras += 2;
    }
 
    return nuevo == 0 ? num : nuevo;
}
 
int main()
{
    cout << funcion(347249) << "\n"; // 432794
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 160
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

[AYUDA] Ejercicio Funcion que retorne...

Publicado por andres (53 intervenciones) el 06/10/2018 21:38:16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
const int CIEN = 100;
const int DIEZ = 10;
 
int funcion(int);
int intercambia(int, int);
 
int main() {
 
  int numero=;
 
  printf("%d\n",funcion(numero));
 
  return EXIT_SUCCESS;
 
}
 
int funcion(int numero) {
 
  int exponente = 0;
  int cociente = numero/CIEN;
 
  int nuevo = 0;
 
  while(0!=(cociente=numero/CIEN)) {
 
  	nuevo += intercambia(numero%CIEN, exponente++);
  	numero = cociente;
 
  }
 
 if(numero < DIEZ) {
       fprintf(stderr,"Número inválido %d", numero);
       exit(EXIT_FAILURE);
 }
 
 nuevo += intercambia(numero, exponente);
 
 return nuevo;
 
}
 
int intercambia(int numero, int exponente) {
 
        int residuo = numero%CIEN;
 
  	int residuo1 = residuo%DIEZ;
  	int cociente1 = residuo/DIEZ;
 
        residuo1 *= DIEZ;
        residuo1 += cociente1;
 
        residuo1 *= (int)pow(CIEN, exponente);
 
        return residuo1;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar