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 - CCross

#11
Disculpa por el detallito lo que causa codedear a prisas, ya lo correji

Saludos  ;-)
#12
Cita de: Royca3 en 11 Junio 2013, 01:37 AM
Bueno compilo el código y tiene cero errores  ;-)
Pero a lo que lo ejecuto e ingreso la palabra a cifrar
se sale automáticamente, luego ingreso nuevamente y me aparecen los resultados pero solo cambia la primer letra las demás las deja iguales.

He editado el codigo de arriba ahora hace los que deseas

Saludos  ;D
#13
Cita de: Royca3 en 11 Junio 2013, 00:00 AM
Bueno Alguien que me explique algo  :(
El código de leosansan pero necesito que en lugar de ese método lo cambie por este:
A = X
B = J
C = O
D = P
.....................

Creo que seria mas o menos asi:

Código (cpp) [Seleccionar]
#include<stdio.h>

int main()
{
   char caracter[2][28] = { {"ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"},
                            {"XJOPZWAUÑLDQSFRBMVHKNYTIEGC"} };
   char cadena[30] = {0};
   int i, j = 0, k = 0;

   printf("Ingrese una cadena en Mayuscula: ");
   scanf("%s", cadena);

      for (; cadena[k]!='\0'; k++){
          for (i = 0; i < 27; i++)
              if (cadena[j] == caracter[0][i]){
                  cadena[j] = caracter[1][i];
                  j++;
            }
      }
    printf("\n%s", cadena);

    return 0;
}


Saludos  ::)
#14
Cita de: amchacon en 10 Junio 2013, 23:32 PM
Y digo yo, que necesidad hay de hacer el caso y el inverso:

Pues para descifrar no y ademas la forma que propones no hace lo deseado ya que la cadena
ya la habias modificado previamente y luego asignas los valores atuales que son los cifrados a
la cadena auxiliar

Saludos  :silbar:
#15
Buenas amigos!!

Aqui otra versión del cifrado cesar donde tu puedes indicar el desplazamiento que quieras

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int des, i = 0, j = 0;
    char cadena[30] = {0};

    printf("Introduce una cadena: ");
    scanf("%s", cadena);

    printf("Ingrese desplazamiento: ");
    scanf(" %d", &des);

    for(; cadena[i]!='\0'; i++)
       cadena[i]+=des;
    printf("\nEncriptado es: %s \n", cadena);

    for(; cadena[j]!='\0'; j++)
       cadena[j]-=des;
     printf("\nDesencriptado es: %s \n", cadena);

    return 0;
}


Saludos  ;D
#16
Cita de: OmarHack en  7 Junio 2013, 18:00 PM
Hace justo lo contrario, si pongo por teclado qw no sale el texto, y si pongo otra cosa cualquiera si sale. ¿Cómo lo soluciono?
Disculpame se me escapo un detallito he editado el codigo de arriba ahora funciona
Saludos  ;)
#17
El error se debe a que estas intentando comparar un puntero con un entro y esto esta
prohibido lo mejor para estos casos es usar la funcion strcmp quedaria asi:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>

int main() {
   char palabra[20]= {0};

   std::cout << "introduce letras: ";
   std::cin >> palabra;

   if(strcmp(palabra, "qw")==0)
   std::cout <<"\nHola mundo";
   std::cin.get();

   return 0;}


Saludos  ;D
#18
El problema radica en que scanf necesita la dirección de la variable a leer por lo cual
debes cambiar esto:

Código (cpp) [Seleccionar]
scanf("%d", pass); ---------> scanf("%d", &pass);

En ambos casos el codigo corregido

Código (cpp) [Seleccionar]
#include <stdio.h>
int main()
{
int nickV = 1024;
int nick;
int passV = 4567;
int pass;

do
{
printf("\n\n\n\n\t\t\t\tNICK:");
scanf("%d", &nick);
printf("\n\t\t\t\tPASS:");
scanf("%d", &pass);
if ((pass != passV) && (nick != nickV)) printf("No valida");
}
while ((nick != nickV) && (pass != passV));
printf("Aceptada");

return 0;
}


PD: Ademas debes adoptar la costumbre de que main te retorne un entero para garantizar de que el programa termino exitosamente mas bien esto lo debes hacer de manera obligatoria

Saludos  ;D
#19
Cita de: mcKicrO en 30 Mayo 2013, 21:09 PM
Alguien me puede echar una mano con este codigo que no me compila me tira este error:
Código (asm) [Seleccionar]
error: lvalue required as increment operand

lvalue generalmente se refiere a el valor a la izquierda de un operador de asignación = la expresion frase++ es equivalente a frase = frase + 1 basicamente frase es un tipo de puntero constante no puede cambiar su valor, que apunta al primer elemento de frase, con esa expresión tu intentas cambiar la dirección de frase que no es posible por eso el error del compilador, simplemente debes declarar un puntero a frase seria asi

Código (cpp) [Seleccionar]
char *ptr = frase; ptr++

Y aqui dejo otra forma de hacerlo, haciendo uso de la función strtok:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
 char frase[]= "Hola como estas Hola como te va Hola amigo";
 char palabra[] = "Hola", *ptr;
 int i = 0;

 ptr = strtok(frase, " ");
 while(ptr != NULL)
 {
     if(strcmp(ptr, palabra)==0) i++;
     ptr = strtok(NULL, " ");
  }
 cout << "La palabra Hola se repite: " << i << " veces" << endl;

 return 0;
}


Saludos   ;)


#20
Cita de: amchacon en 29 Mayo 2013, 01:42 AM
¿Pero en los & tenía razón?  :silbar:

Si los & son redundantes ya que el nombre del array es un puntero inicializado con la dirección
del primer elemento del array de caracteres.

Saludos amchacon  ::)