Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - DtxdF

#51
@ronbay

#include <stdio.h>
#include <stdlib.h>

#define MAX_N 9

typedef struct {
    int max_number;
    int index;
} number;

int main(void)
{
    int n = 358267;
    int array[MAX_N], *array_ptr = array;
    int aux, tmp;
    register int i = 0;

    /* Extraemos cada digito */
    while (n != 0 && i < MAX_N) {
        *array_ptr++ = n % 10;

        n /= 10;
        i++;
    }
   
    /* Usamos el ordenamiento burbuja */
    for (int aux_i = 0; aux_i < i; aux_i++) {
        for (int aux_j = 0; aux_j < i-1; aux_j++) {
            if (array[aux_j] > array[aux_j+1]) {
                aux = array[aux_j];
                array[aux_j] = array[aux_j+1];
                array[aux_j+1] = aux;
            }
        }
    }

    number mynumber;
    mynumber.index = 0;
    mynumber.max_number = 0;

    /* Extraemos el número mayor */
    int j;
    for (j = 0; j < i; j++)
        if (array[j] > mynumber.max_number) {
            mynumber.max_number = array[j];
            mynumber.index = j;
        }

    /* Lo intercambiamos con el último y el número mayor */
    tmp = array[--j];
    array[j] = mynumber.max_number;
    array[mynumber.index] = tmp;

    /* Reconstruimos el número */
    int k, r = 0;
    for (k = 0; k < i; k++) {
        r *= 10;
        r += array[k];
    }

    printf("%d\n", r);

    return EXIT_SUCCESS;
}


No es recursivo, y tampoco sé si es lo que deseas, pero te puede servir para dar un paso más.

~ DtxdF
#52
Hola @ronbay

Las reglas dictan que no está permitido la realización de tareas, pero estoy seguro que muchos te ayudarán si dejas un adelanto, con un esfuerzo notorio.

Lo que se me ocurre para realizar lo que quieres, es usar Módulo (en C y muchos otros lenguajes es %) primero contra el número, el resultado almacenarlo en un arreglo, luego dividirlo entre 10 y realizar esta operación sucesivamente hasta que la variable donde se haga referencia al número sea 0.

Una vez realizado todas estas operaciones, puedes hacer dos cosas, aunque eso depende de tus necesidades: puedes usar algún algoritmo de ordenamiento si deseas un orden de menor a mayor, aunque no quedará exactamente como la solución que propones; también puedes usar otra variable donde hará referencia al número mayor del arreglo que se está recorriendo, que a su vez éste debe intercambiarse con el último elemento del arreglo.

Por último, pero esto puede ser opcional si desea "reconstruir el número", es, a partir del inicio del inicio del arreglo, obtener ese elemento, multiplicarlo con 10, sumarle el segundo elemento, y así con los mismos números. Debería obtener el número "reconstruido" pero con el número mayor recorrido.

Es opcional, como le dije, ya que si no es importante, puede imprimir la lista tal cual recorriendo el arreglo y después de ello, imprimir una nueva línea.

Espero le sirva.

~ DtxdF
#53
Hola @Locura_23

argc: Argument Count, que indica la cantidad de argumentos dados por la entidad que ejecutará este programa.
argv: Argument Vector, ya serían los argumentos proporcionados en sí, siendo una lista de cadenas.

Si, por ejemplo, tenemos el siguiente código:

main.c:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
   char *arg;
   while ((arg = *argv++))
       puts(arg);

   return EXIT_SUCCESS;

}


Compilamos:

cc main.c -o main

Al ejecutarlo sin argumentos este programa, se mostrará en la salida del terminal el nombre del programa, que para este caso es main.c.

Código (bash) [Seleccionar]
./main
# Salida:
# ./main


Pero si ejecutaramos el programa con argumentos:

Código (bash) [Seleccionar]
./main "Primer argumento" "Segundo argumento" "Tercer argumento"
# Salida:
# ./main
# Primer argumento
# Segundo argumento
# Tercer argumento


También si escribe un tercer argumento para la función main (llamémosle env), se mostrarán las variables de entorno.

~ DtxdF
#54
Hola @SlayerBur

Para ello debe ajustar una variable que indique el tiempo límite que desea esperar después de realizar una acción. Esto es para tener un mejor orden, pero también puede optar por crear un archivo de configuración (ya sea con ConfigParser, TOML, JSON, etc.), aunque esto se sale del tema, es más una recomendación para su proyecto.

Después de ajustar los segundos límites, también debe crear una variable donde hará referencia a el tiempo actual, el cual será usado para calcular los segundos transcurridos. Mucho después tiene que restar el tiempo actual con el tiempo que hace referencia esa variable, el cual le debería dar los segundos que han pasado.

El siguiente código es un pequeño script a modo de ilustración, y si mira la línea 20 puede ver que si es None, ejecutará la acción, hará la acción y ajustará el tiempo actual. Es necesario para cuando la operación que se desea todavía no se ha realizado.

Código (python) [Seleccionar]
#!/usr/local/bin/python3.7

import time

# El tiempo a esperar
TIME_LIMIT = 5
CURRENT_TIME = None

print("Escriba la tecla P y presione ENTER.")
while (True):
    try:
        cmd = input("> ")
    except (EOFError, KeyboardInterrupt):
        break

    if not (cmd):
        continue

    if (cmd[:1].lower() == "p"):
        if (CURRENT_TIME is None or time.time()-CURRENT_TIME >= TIME_LIMIT):
            print("Prueba")

            # Se reajusta el tiempo para poder realizar las mismas acciones
            CURRENT_TIME = time.time()
        else:
            print("Debes esperar %d segundos..." % (TIME_LIMIT))
    elif (cmd[:1].lower() == "q"):
        break
    else:
        print("Error, comando inexistente")


Ejemplo:

Código (bash) [Seleccionar]
python3.7 main.py

Resultado:

Escriba la tecla P y presione ENTER.
> p
Prueba
> p
Debes esperar 5 segundos...
>


Luego de esperar los 5 segundos, sucede la misma acción una y otra vez:

> Prueba

~ DtxdF
#55
Hola @TickTack

Para eso debe instalar proxychains o torsocks. Luego simplemente debe prefijarlo antes de colocar el comando httrack.

Por ejemplo:

Código (bash) [Seleccionar]
proxychains httrack URL
# o en el caso de torsocks
torsocks httrack URL


Para el caso de proxychains le aconsejo que primero lo configure según sus preferencias.

Más información:

*.- En el mismo archivo de configuración de proxychains, que está muy bien comentado.
*.- man torsocks.conf(5)

~ DtxdF
#56
Perdon si este tema no va aqui pero soy nuevo en esta maravillosa pagina que la llamo escuela, bueno al grano: genere un troyano en spy net, ya hize todo abri mis puertos del router y de mi pc, desactive el firewall del router y de mi pc abri varios puertos por si acaso que son: 80, 2500, 8080 y 9003 lo probe con mi otra pc y si me cae con el puerto 2500, pero yo siempre en mis troyanos le pongo persistencia para que cada vez que se encienda la conexion de la victima (en este caso mi otro ordenador) se encienda mi spy net, pero no se vuelve a conectar y esa no es la idea, si alguien me puede ayudar con esto lo agradeceria muchisimo, y disculpe si no coloco este tema a donde va disculpen soy muy nuevo y tambien disculpe si no me explique bien


· Tema movido a subforo más apropiado
>aquí las reglas del foro
-Engel Lex