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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 102
21  Programación / Programación C/C++ / Re: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. en: 25 Octubre 2022, 10:40 am
Por qué? No entiendo a qué te refieres  :huh:
22  Programación / Programación General / Re: Ayuda, para mostrar estrucutra de datos en: 24 Octubre 2022, 17:43 pm
Por un lado, hay un foro específico para C/C++... :silbar:

Y por otro, varias cosas:
  • Estás empezando a guardar empleados en el índice 1 y el primero es el índice 0.
  • El 'break' del case 3 está dentro del for() por lo que intenta mostrar el elemento 0, que está vacío porque guardaste en el 1 y sale del for() con el break, llega al default porque el break no estaba donde tenía que estar, vuelve al principio del 'while (true)', se ejecuta el 'clear' y por tanto "oh vaya, pestañeaste y te lo perdiste  :P"

PD: En vez de usar 'getch()' de la librería <conio.h> (que no es una librería estándar), usa 'cin.get()' de <iostream>... :rolleyes: :rolleyes:
23  Programación / Programación C/C++ / Re: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. en: 24 Octubre 2022, 17:15 pm
Muchas gracias, me ha servido mucho este y el otro comentario. Como duda adicional. ¿Estoy haciendo bien en usar el punto para referirme a la struct siendo que es memoria dinamica? En arreglos funciona con flechas pero con matrices me marco error.

El uso de la flecha tal que:
Código
  1. variable->campo
Es equivalente a hacer:
Código
  1. (*variable).campo

La flecha simplemente permite simplificar un poco las expresiones para que no quede tan engorroso.
En este caso concreto, al ser una matriz, cuando haces:
Código:
matriz[i][j]
Ya estás accediendo a un elemento de tipo <alumnos> no a un puntero, por eso tienes que usar el punto.

Si usases aritmética de punteros para acceder a la matriz (si no me he equivocado, ambas líneas muestran exactamente lo mismo):
Código
  1. printf("%s\n", matriz[i][j].nombre);
  2. printf("%s\n", (*(*(matriz + i) + j)).nombre); // Usando aritmetica de punteros

Podrías simplificar la segunda expresión haciendo uso de la flecha:
Código
  1. printf("%s\n", (*(matriz + i) + j)->nombre);

Pero como puedes ver, con matrices siempre es más sencillo utilizar los índices.



Ya puestos, otro extra:
Al momento de crear el struct, si utilizas typedef, no es necesario que asignes un primer nombre, bastaría con el del final.
Poner un nombre al principio y otro al final sólo es necesario si quieres hacer referencia a la propia struct dentro de sí misma.
Código
  1. typedef struct {
  2.  //...
  3.  //...
  4. } InfoAlumno;
Y el nombre mejor en singular, has creado una estructura, no un array de esa estructura. Luego ya si creas un array, llamas a la variable en plural:
Código
  1. InfoAlumno **alumnos;
24  Programación / Programación C/C++ / Re: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. en: 22 Octubre 2022, 17:36 pm
Estás intentando guardar 3 (max) notas en un array de longitud 2 (cal)...  :silbar: :silbar:
Además si estás usando un 'define' para guardar [max = 3], luego úsalo para calcular el promedio en lugar de dividir directamente entre 3.

Y por otro lado, no estás liberando bien la matriz dinámica.
Fíjate en cómo reservas la memoria pues para liberarla el proceso es el mismo. Lo que reservas con bucle, lo liberas con bucle y lo que reservas una vez, lo liberas una vez:
Código
  1. for(int i = 0; i < filas; i++) {
  2.    free(alumnos[i]);
  3. }
  4. free(alumnos);
25  Programación / Programación C/C++ / Re: hola necesito ayuda con una tarea de programación en lenguaje c en: 9 Octubre 2022, 19:47 pm
El problema que menciona @Lieutenant McFarley sucede por no utilizar etiquetas de Código GeSHi para agregar códigos.
La letra 'i' entre corchetes '[]' se interpreta como letra cursiva por lo que no se ve en el código y a partir de ahí el resto del código se empieza a ver en cursiva: tal que así

Los códigos se deben insertar usando el desplegable de "Código GeSHi" y seleccionando el lenguaje correspondiente o escribiendo manualmente las etiquetas:
[code=c]
// Codigo C aqui
[/code]


Y la respuesta al problema original es: no existe ningún problema.
Se podría mejorar un poco el código ya que ahora mismo sólo se sustituyen las vocales minúsculas y los ifs se pueden juntar en uno solo usando el operador OR (||)
Por lo demás, si muestras la cadena t después del for que reemplaza las vocales, verás que se han reemplazado correctamente...  :rolleyes:
26  Programación / Programación C/C++ / Re: Buenas, soy nuevo aca y necesito ayuda con el tema de las funciones en este ejercicio en: 5 Octubre 2022, 22:35 pm
No tiene mucho sentido el ejercicio... :rolleyes:
Y puede ser por uno de estos 2 motivos:
  • Te falta texto como, por ejemplo, "muestra por cada competidor, el tiempo total en recorrer la carrera y las etapas con mejor y peor tiempo" o algo así para poder dar uso a las funciones que te solicitan en el apartado b.
  • Simplemente te están pidiendo que crees esas funciones y las uses como a ti te dé la gana para practicar.

En cualquiera de los dos casos, las funciones funcionSuma() y funcionTiempoRegistrar() son bastante fáciles de implementar, no tendrás que investigar demasiado.
En cambio, la función funcionMaxMin se te puede complicar un poco más porque te piden que devuelva dos valores (max y min) lo cual en principio no se puede hacer en C/C++ (cada función retorna un único valor). Un par de soluciones son que devuelvas un array de 2 posiciones lo cual se te puede complicar un poco si estás empezando y otra opción más sencilla es que uses parámetros por referencia.

Con estos datos ya puedes intentarlo y agregar el código que tengas si tienes alguna otra duda.  :-X
27  Programación / Programación C/C++ / Re: ayuda con este ejercicio de c++ por favor en: 3 Octubre 2022, 22:59 pm
Lo mismo que en el otro tema: Evitemos publicar soluciones tan completas
28  Programación / Programación C/C++ / Re: no se como hacer este ejercicio de c++ en: 3 Octubre 2022, 22:55 pm
Por un lado, para @kufanda: Puedes modificar un mensaje ya publicado para agregar lo que consideres, como en este caso el código de tu programa.
El tema duplicado con el código ha sido eliminado y dicho código ha sido agregado al primer mensaje de este tema.

Por otro lado, para @Mr.E: Evitemos hacer la tarea a otros usuarios.
Aunque haya aportado algo de código, la respuesta es demasiado "completa" en comparación.
El objetivo es guiar al usuario para que consiga hacer él mismo el programa, no dárselo hecho.


Y por dejar algún comentario a la solución:
  • No utilizar la cabecera <conio.h>. La función 'getch()' se puede sustituir por 'cin.get()' (que se encuentra en <iostream> para C++) o por 'getchar()' (que se encuentra en <stdio.h> para C)
  • No utilizar Magic Numbers: Hace el código más difícil de entender y de escalar.
  • La variable 'contadorVendidos' indica justo lo contrario a lo que representa su nombre...
  • Declarando la matriz de la siguiente manera se hacen innecesarios los bucles para inicializarla:
Código
  1. int manzanaLote[10][5] = {0};
29  Programación / Programación C/C++ / Re: Ayuda con ejercicio de vectores en C en: 1 Junio 2022, 18:23 pm
Ejercicio 1: Sí, funciona pero se puede simplificar
Código
  1. int numeros[10] = {0}; // Inicializa el primer valor a 0 y el resto al valor por defecto (que, oh sorpresa, es 0 tambien)

Ejercicio 2: No hace lo que se supone. Dice que sumes 1 a cada elemento y lo que estás haciendo es asignar a cada elemento su índice...  :silbar:

Ejercicio 3: No me queda muy claro lo que hay que hacer pero lo que sí me queda claro es que dicen "punto flotante" (es decir float) y estás usando int...  :silbar:

Ejercicio 4: Usa el carácter del tabulador "\t" después de mostrar cada elemento para que haya una separación simulando unas columnas...
30  Programación / Programación C/C++ / Re: duda matriz en: 30 Mayo 2022, 21:14 pm
Y otra cosa importante a tener en cuenta que creo que no se ha mencionado:
En la línea 82 tienes lo siguiente:
Código
  1. if(fila='I')
  2.  x=8;

No estás comparando si 'fila' es igual a 'I'. Estás asignando el valor 'I' a 'fila.
Esta instrucción se considera 'true' siempre ya que 'I' (en ASCII) es distinto de 0.
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 102
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines