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

#31
Cita de: piyor6 en 15 Abril 2018, 02:16 AM


ok, copie todo el codigo y tambien hice la estructura de la funcion y borre el string.h y asi estoy usando la funcion que cree y me tira error


for(int i=0;i<numpe;i++){
//sacando personas discapacitadas
if(personas[i].discapacidad=='v'){
  strcpy(personaconD[i],numpe,personas[i].nombre);
}
   
}
PDT:subiria una imagen del error pero no se subir imagenes

Estableces 3 argumentos a strcpy.
#32
¿Otra vez? Antes que nada, recordá poner tus códigos bajo la etiqueta "CODE".

Lamentablemente no te puedo ayudar ya que no entiendo donde empiezan y donde terminan los corchetes, tu código tiene que mejorar drasticamente.
O lo ofucaste apropósito, que se yo.

Solo pude encontrar una irregular doble apertura de corchetes.

Código (cpp) [Seleccionar]
int main()
{
      char periodo[50];
      char pintor[50];
      char nacion[50];
     
         printf("Ingrese periodo: ");
         scanf("%s", periodo);
     
     
      if ((strcmp (periodo, "Prehistorico")==0) || (strcmp(periodo, "egipcio")==0)){


               printf("Galeria 1 \n");

      }     
     
      else if ((strcmp(periodo, "renacimiento")==0)){
         {
         

 

               printf("Ingrese nombre del pintor: ");
               scanf("%s", pintor);
         }
          if ((strcmp (pintor, "Leonardo")==0) || (strcmp(pintor, "Michelangelo")==0))
         {
         
               printf ("Galeria 2 \n");
         }   
         else if (strcmp(pintor, "Rafael")==0){
     

                printf ("Galeria 3");
          }   
         else if ((strcmp (pintor, "Tiziano")==0) || (strcmp(pintor, "Boticelli")==0)){
         

               printf("Galeria 4");
         }   
         else if ((strcmp (pintor, "Greco")==0) || (strcmp(pintor, "Tintoretto")==0)){
         

               printf("Galeria 5a");
         }
         else if (strcmp(pintor, "Bellini")==0){
         

               printf("Galeria 5b");
         }   
      else {
         
               printf("No hay obras de este pintor \n");
         }
}   

         if ((strcmp (periodo, "barroco")==0)){
         {
     
     
                  printf("Ingrese nacion: ");
                  scanf("%s", nacion);
     
            }       
     
             if ((strcmp (nacion, "Espana")==0)){
           
                  printf("Galeria 6, Velzaquez y Murillo");
             }
   
             else if ((strcmp(nacion, "Italia")==0)){
           
                  printf("Galeria 7, Caravaggio");
           
            }
            else {
           
                  printf("No hay obras de esta nacionalidad");
            }
}
         else if ((strcmp(periodo, "expresionismo")==0)){
           
               printf("Galeria 8, Kandiski");
            }     
         if ((strcmp(periodo, "impresionismo")==0)){
         
                  printf("Galeria 8, Van Gogh");
               }
         else if ((strcmp(periodo, "fauvismo")==0)){
         
                  printf("Galeria 8, Manguin");
               }
         if ((strcmp(periodo, "cubismo")==0)){
         
                  printf("Galeria 9, Picasso");
               }
      /* DOBLE "{" en las siguientes líneas.  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
     
      else if ((strcmp(periodo, "surrealismo")==0)){
            {
               printf("Ingrese pintor: ");
               scanf("%s", pintor);
            }
            if ((strcmp(pintor, "Dali")==0)){
           
               printf("Galeria 10");
            }
            else if ((strcmp(pintor, "Miro")==0)){
           
               printf("Galeria 11");
            }
            else{
               printf("No hay obras de este pintor");
         
            }
}
      else if ((strcmp(periodo, "informalismo")==0) || (strcmp(periodo, "hiperralismo")==0)){
               printf("Galeria 12");
      }
         else {
     
               printf("No hay obras en este periodo");
                      }
     
     
   return 0;

}
#33
Te doy la razón, los atajos ya no funcionan en Windows 10.
#34
Estuve depurando y resulta que tu función retorna el valor "9" entero, no un puntero a la variable.

El ejemplo correcto seria el siguiente:

#include <stdio.h>

int funcion ()
{
    int resultado=9; //variable local de la funcion, al acabar la funcion se pierde el dato
    return (int)&resultado;
}

int main(int argc, char *argv[])
{
    int* p = (int*)funcion();
    printf("%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i",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,*p); //9

    return 0;
}


Que de todas formas no funciona debido a la manera que tiene el compilador de generar el código.

¿Como lo hace? Básicamente preserva TODA la memoria necesaria en la pila para empujar los argumentos al arrancar el main, esto evita que se corrompa la pila al invocar funciones privadas y de tipo CDECL.

Esto es con DevC++.
#35
Me he cojid0 mejores juegos, salu2

Jugué muchos de esos juegos y no son tan especiales en realidad...
#36
Efectivamente la variable "p" apunta a la pila que puede ser sobreescrita.

Es más, creo que si establecieras un par de argumentos más a "printf" el valor seria reemplazado.
#37
Yo pienso que Linux es unicamente utilizado porque es grátis, esto se hace notar cuando te das cuenta de que hay muchísimos servidores bajo Linux, la verdad es que le deseo la muerte a ese sistema operativo y me pone muy triste que un grande como Microsoft quiera compatibilizar su software con un sistema tan lleno de vulnerabilidades como es Linux.

Ya dichas estas inútiles palabras, digo que no me sorprenderia que los usuarios frecuentes de Linux vuelvan a Windows gracias a estas actualizaciones, seria de anormal conformarse con Linux cuando sus programas ya corren en Windows (que por cierto tiene el monopolio del software en general).
#38
Es simple, solo usá un procedimiento recursivo que retorne un número primo, te lo dejo en pseoducódigo.

Func RandByYuki():Int
   ' En este caso no es necesario inicializar las variables.
   int Ret
   int i
   bool NoEsNúmeroPrimo
   Ret = rand() % 10
   For i = 2 to (Ret - 1)
       ' Número primo = Número solo divisible por 1 y por si mismo.
       ' El operador MOD retorna el sobrante de una división, si no hay sobrante significa que no es un número primo.
       NoEsNúmeroPrimo = ((Ret Mod i) = 0)
       If NoEsNúmeroPrimo Then
           Exit For ' El número es divisible, por ende, no es un número primo, entonces salimos del bucle.
       EndIf
   Next
   If NoEsNúmeroPrimo Then
       Ret = RandByYuki() ' Se auto invoca.
   EndIf
   RandByYuki = Ret
EndFunc


Este código lo escribí acá y no se si funciona realmente, pero te deberia de dar "la mano" para que te escribas tu propio código.
PD: Que lindo pseudocódigo che...
#40
Dudas Generales / Re: HTML
14 Marzo 2018, 14:34 PM
Leete todo el comentario de Orubatosu y después podes seguir estos pasos (si estas en Chrome).

Clic derecho > Guardar como...

Te permite guardar la página HTML completa.

También podés usar:

CTRL + U

para ver el código fuente de la página.

Si solo querés inspeccionar un elemento de una página web:

Clic derecho (sobre el elemento) > Inspeccionar

Salu3