|
31
|
Programación / Programación C/C++ / Re: ayuda con las cadenas
|
en: 15 Abril 2018, 02:30 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
|
Programación / Programación C/C++ / Re: Consulta sobre programa C
|
en: 14 Abril 2018, 17:23 pm
|
¿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. 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; }
|
|
|
34
|
Programación / Programación C/C++ / Re: No devolver nunca punteros a variables locales a una función
|
en: 11 Abril 2018, 02:37 am
|
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++.
|
|
|
37
|
Foros Generales / Noticias / Re: Microsoft lanza una herramienta open source para que cualquiera traiga su ...
|
en: 29 Marzo 2018, 05:48 am
|
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
|
Programación / Programación C/C++ / Re: crear una matriz de 10x10 de forma aleatoria con numeros primos
|
en: 29 Marzo 2018, 05:38 am
|
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
|
Foros Generales / Dudas Generales / Re: HTML
|
en: 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: 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
|
|
|
|
|
|
|