elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: 1 ... 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 [99] 100 101 102
981  Programación / Programación C/C++ / Re: Error ld 1 returned status. Ayuda plox en: 20 Noviembre 2018, 08:59 am
Prueba a quitar el ".h" a <iostream>. Además tienes que incluir <using namespace std;>.
En ocasiones devuelve error si lo tienes abierto en otra pantalla. Y si con esto no se soluciona, adjunta el error que te salga.

PD: El código entre etiquetas GeSHi.
Y... una cosa más... Ese código es tuyo? O está sacado de algún sitio? Porque usar <iostream> y <stdio.h>.... Aquí hay algo raro.
982  Programación / Programación C/C++ / Re: Arreglo funciones en: 20 Noviembre 2018, 00:06 am
No estamos para hacer tareas sino para resolver dudas. Tienes que especificar cual es tu duda o en que quieres que te ayudemos a avanzar, no sirve de nada que mandes el ejercicio entero y te hagamos el programa nosotros.

Si quieres puedes comentarme que partes del programa sí sabrías hacer o que conocimientos tienes (ya que dudo que hayas dado clases o o estructuras). O como llevas los arrays (la forma más sencilla es usar arrays de tamaño 5 para cada variable que te diceno usar variables sueltas para los nombres, etc y las notas guardarlas en arrays de tamaño 3, tú eres el programador, tú decides). Y si tienes algo de código hecho puedes insertarlo para que veamos cómo lo llevas (eso sí, entre etiquetas GeSHi), aunque sea una simple entrada de datos porque ni siquiera sé si estás programando en C o C++.
983  Programación / Programación C/C++ / Re: Ayuda c++ conjetura de Goldbach en: 19 Noviembre 2018, 10:05 am
Estaba echando un vistazo a los posts y me pareció interesante este programa por lo que me puse a investigar.Ya he conseguido crear el programa y te comento: si tienes un bucle que te crea n soluciones y tú sólo quieres la primera, debes ponerle dos condiciones al bucle y una vez obtengas la primera solución, cambias el valor de una condición para que salga inmediatamente y no siga calculando. Con eso ya debería ayudarte a que no te muestre todas las soluciones.
Suerte.
984  Programación / Ejercicios / Re: AYUDA PLZ en: 19 Noviembre 2018, 07:29 am
Te recomiendo que busques información sobre la librería <cctype>. Tiene algunas funciones que digamos que te pueden interesar... :silbar:
Y en caso de que no lo tengas permitido, ten presente que cuando comparas dos caracteres estás comparando su valor ASCII por lo que:
Código
  1. char caracter = 'a';
  2. if(caracter >= 'a' && caracter <= 'z')
  3.    cout << "El caracter es una letra minuscula" << endl;
  4. else if(caracter >= 'A' && caracter <= 'Z')
  5.    cout << "El caracter es una letra mayuscula" << endl;
Creo que ahí te he dado ya suficientes pistas para que lo hagas con el método que prefieras. Adapta ese código a lo que tú necesitas o mírate la librería que te he comentado, verás como alguna función te viene de perlas.
985  Programación / Programación C/C++ / Re: Duda . en: 19 Noviembre 2018, 03:30 am
Y para finalizar en los for entonces hacer un for de esta manera esta mal cierto
Código
  1. for(i=0;i=9;i++){
  2. }

Sí, sería incorrecto, en primer lugar porque el segundo campo del <for> que debería ser una condición, no lo es, es una asignación. El funcionamiento de ese <for> es el siguiente: entras en el <for> y se asigna el valor inicial <i = 0>. Se llega a la condición que como no es una condición sino una asignación se ejecuta entonces ahora <i = 9>. Se ejecuta el interior del bucle. Termina una iteración y se produce el incremento <i = 10>, se llega a la condición de nuevo y... <i = 9>. Se vuelve a ejecutar el bucle.
Conclusión: tenemos un bucle infinito en el que i siempre vale 9.

Resumen: <a = b> asignas a <a> el valor de <b>
                 <a == b> comparas que el valor de <a> y el de <b> sean iguales

Quieres probarlo? Simple, ejecuta esto (no hace falta que modifiques nada) y podrás ver los valores de i por pantalla (no esperes que acabe):
Código
  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. for(int i = 0; i = 9; i++)
  5. cout << i << endl;
  6. }

En todo caso la otra opción (haciendo correctamente una condición y no una asignación) sería usando dos iguales, tal que así:
Código
  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. for(int i = 0; i == 9; i++)
  5. cout << "El bucle se ha ejecutado" << endl;
  6. }
Resultado de este código: NINGUNO. Empieza el bucle <i = 0>, llegamos a la condición... ¿<i == 9>? No, <i = 0>; entonces sale del bucle. Nunca llegará a ejecutarse lo que haya dentro del bucle.
986  Programación / Programación C/C++ / Re: Duda . en: 19 Noviembre 2018, 02:45 am
Primero:
Utilize esta opcion y me parece mucho mejor ,  gracias  a esto no es necesario usar variables auxiliares ¿Porque? , y Bueno el codigo me quedo asi

Porque lo que hacías antes era intercambiar el valor de la posición <i> de <pares> (o <impares>) por la de <numeros> pero con guardar el valor de <numeros> en <pares> o <impares> es suficiente.
Tú al usar una variable auxiliar estabas por decirlo de alguna manera borrando cada elemento una vez que trabajabas con él, pero no era necesario.

Segundo:
Código
  1. for(i=0;i<10;i++){
  2. if(numeros[i]%2==0){
  3.  if(numeros[i] % 2 == 0)
Aquí estás repitiendo dos veces el mismo <if>, borra uno de ellos.

Y no imprimir 0 te doy una pista: al finalizar el <for> donde clasificas los números en <pares> e <impares>; <contadorPar> vale la cantidad de dígitos pares y <contadorImpar> de la misma manera vale la cantidad de dígitos impares. Úsalos en los últimos bucles <for>.
987  Programación / Programación C/C++ / Re: Duda . en: 19 Noviembre 2018, 02:14 am
Exacto, no puedes dar por hecho que van a estar ordenados.
Además para no desperdiciar posiciones del vector, es más correcto introducirlos seguidos que no introducir un valor cada 2 o cada n posiciones.
988  Programación / Programación C/C++ / Re: Duda . en: 19 Noviembre 2018, 01:56 am
Cierto, no me había dado cuenta que podías imprimirlos de dos en dos  :xD

Ya para terminar de pulir ese código:
- En vez de ir poniendo un <cout> para cada salto de línea puedes poner por ejemplo:
Código
  1. cout << "Numeros Impares " << endl << endl;
Y ya tienes ahí dos saltos de línea.
- O declarar una constante para el tamaño de los vectores por si más adelante quieres guardar 20 números, sólo tienes que modificarlo en un sitio:
Código
  1. const int TAM = 10;
Y usar la variable <TAM> en el programa donde has usado el <10> directamente. Así consigues programas más genéricos.
989  Programación / Programación C/C++ / Re: Duda . en: 19 Noviembre 2018, 01:44 am
Tienes varias opciones para hacerlo:
- Opción 1: Usar contadores independientes para cada vector. En ese caso te quedaría algo así:
Código
  1. int contadorPar = 0, contadorImpar = 0;
  2. for(i = 0; i < 10; i++)
  3.    if(numeros[i] % 2 == 0){
  4.        pares[contadorPar] = numeros[i];
  5.        contadorPar++;
  6.    }
  7.    else{
  8.        impares[contadorImpar] = numeros[i];
  9.        contadorImpar++;
  10.    }
De esta manera cada vector <pares> e <impares> tendrán los elementos en sus 5 primeras posiciones (si imprimes hasta 10 verás que las 5 últimas ya no tienen nada). Me he evitado todo lo que tienes tú en cada <if>; ya que tú lo que haces es sustituir el elemento de <numeros> por 0 una vez lo guardas en el otro vector, algo que no es necesario para que el programa funcione correctamente, pero que si te lo piden así está bien hecho.

- Opción 2: No mostrar los elementos que sean 0. En este caso no puedes usar tu código:
Código
  1. while(pares[i]!=0){
  2. cout<<pares[i]<<" ";
  3. }

Eso dentro del primer for para imprimir los numeros pares pero no se como.
En este caso muestras los elementos MIENTRAS un elemento no sea 0, entonces en cuanto encuentra un 0 va a dejar de imprimir. Además el tema de que se repita el 2 continuamente es porque al usar un <while> el incremento <i++> del <for> tienes que hacerlo explícitamente dentro del <while>.
 
Para que esta segunda opción funcione tendrías que hacerlo con un <for> para recorrer el vector como antes y un <if> dentro para no imprimir los valores que sean 0. El código sería de este estilo:
Código
  1. for(i = 0; i < 10; i++)
  2.    if(pares[i] != 0)
  3.        cout << pares[i] << "  ";

La opción más correcta es la primera pero te muestro la segunda para que veas que es posible plantear tu idea.
990  Programación / Programación C/C++ / Re: Ayuda! Letra mas repetida en: 19 Noviembre 2018, 00:26 am
Tienes en el array <letras> el número de veces que aparece cada una. Simplemente compara esos valores y guarda el máximo. Por ejemplo:
Código
  1. int maximo = letras[0], indiceMaximo = 0;
  2. for (i = 1; i < 4; i++){
  3.    if(letras[i] > maximo){
  4.        maximo = letras[i];
  5.        indiceMaximo = i;
  6.    }
  7. }

Si quieres hacerlo usando la enum te dejo que investigues cómo podrías hacerlo.

PD: Para futuras consultas mete tu código entre etiquetas GeSHi ya que sino los índices con "[ ]" y una "i" o una "b" dentro desaparecen, puedes verlo tú mismo y el código es más complicado de entender. Y te recomiendo que sustituyas <gets(frase)> por <fgets(frase, 100, stdin)>.
Páginas: 1 ... 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 [99] 100 101 102
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines