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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema ejercicio básico. Lenguaje C.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema ejercicio básico. Lenguaje C.  (Leído 2,761 veces)
Healsy

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema ejercicio básico. Lenguaje C.
« en: 5 Octubre 2016, 01:39 am »

¡Buenos días a todos!

Tengo como consigna este ejercicio:ingresar un conjunto de 20 personas y solamente contabilizar aquellos que tengan edad comprendida entre 18 y 45.

Recién estoy empezando en esto ayer empece a investigar así que perdonen. La verdad no se que hago mal, hay veces que me pide 5 datos cuando ingreso numeros muy altos, y cuando ingreso bajos solo me pide 4.

Código (lo realice con 4 personas para no tener que estar ingresando tantos datos).

Código:
#include<stdio.h>

int main (){



int ed=0,i=0,cont=0;


  printf ("Ingrese la edad de 4 personas (el programa contabilizara solo las que esten comprendidas entre 18 y 45):\n");


for (i=0;i<4;i++)
{scanf ("%i",&ed);

if (ed>=18 && ed<=45)
       {
      cont++;
        scanf ("%i",&ed);
   }
   
       
}

printf ("La cantidad de personas comprendidas en el rango pedido es de: %d",cont);


return 0;

}


En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Problema ejercicio básico. Lenguaje C.
« Respuesta #1 en: 5 Octubre 2016, 16:03 pm »

No funcionaba porque o tienes que inicializar una cantidad de variables igual a la cantidad de datos que ingresas, o creas una colección de posiciones en las cuales guardaras esos valores, de igual manera, con una cantidad de posiciones igual a los valores que necesitas guardar.

Para ello, se puede usar arreglos, vectores, punteros...aquí un ejemplo sencillo con arreglos, como estoy usando esa basura de dev c++, tengo que usar el estandar c11, pero igual sirve.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  5.  
  6. int main(int argc, char *argv[]) {
  7.  
  8.  
  9. int edad[4]; // Arreglo de cuatro posiciones --> Edad [ valorEdad1, valorEdad2, valorEdad3, valorEdad4 ]
  10. int edadEscaneada; // variable temporal para grabar las edades, luego comprobar si esta en el rango
  11. int contador=0;
  12.  
  13.    printf ("Ingrese la edad de 4 personas:\n");
  14. printf ("Digite solo edades entre 18 y 45 años:\n");
  15.  
  16. int i;
  17. for (i=0;i<4;i++)
  18. {
  19. printf ("Edad %d: ", i+1);
  20. scanf ("%d", &edadEscaneada);
  21.  
  22. if (edadEscaneada>=18 && edadEscaneada<=45)
  23.        {
  24.       edad[i] = edadEscaneada;
  25.       contador++;
  26.    }
  27.  
  28.  
  29. }
  30.  
  31.  
  32.    printf ("La cantidad de personas comprendidas en el rango pedido es de: %d \n\n", contador);
  33. for (i=0;i<4;i++)
  34. {
  35. if (edad[i] >=18 && edad[i] <=45)
  36.        {
  37. printf ("Edad %d:\n", edad[i]);
  38. }
  39. }
  40.  
  41.   return 0;
  42. }
  43.  


En línea


MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Problema ejercicio básico. Lenguaje C.
« Respuesta #2 en: 5 Octubre 2016, 17:22 pm »

Código
  1. for(i=0; i<4; i++) {
  2.    scanf("%i",&ed);
  3.    if(ed>=18 && ed<=45) {
  4.        cont++;
  5.        scanf ("%i",&ed); // <-- Te sobra esta instrucción
  6.    }
  7. }

Cuando entres en el if al dar una edad que cumpla la condición, además de contabilizar, vas a pedir un dato que no se va a tener en cuenta porque al salir del if e iterar otra vez el bucle, vas a llegar al scanf del inicio que te machacará lo que hubiera puesto en el anterior en ed.

Si sigues el flujo del programa verás que el segundo scanf no tiene razón de ser. Sobra. Por eso te pedía datos de más.
En línea

Healsy

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema ejercicio básico. Lenguaje C.
« Respuesta #3 en: 5 Octubre 2016, 20:24 pm »

Muchisimas gracias a los dos, cualquier duda que me surga con el ejercicio la pondré aquí. A la noche tendre la computadora para compilar.

Me dieron para que lo resuelva con los temas que se, y no llegamos a la parte de vectores de todas formas voy a investigar ese tema.
« Última modificación: 5 Octubre 2016, 20:28 pm por Healsy » En línea

Healsy

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problemas ejercicios básicos. Lenguaje C.
« Respuesta #4 en: 6 Octubre 2016, 01:32 am »

Ya logre compilar y efectivamente ese era el error lo imagine como si fuese un while por eso agregue un scanf adentro.
Tengo otra duda no entiendo el siguiente ejercicio.
Escriba un programa que informe la cantidad de bytes que utiliza la PC para almacenar cada uno de los distintos tipos de variables: int, float, char, doublé, long. El programa debe tener una salida aceptable con las aclaraciones correspondientes y buena presentación.

 Busque en internet y encontré esto pero no logro relacionarlo (no creo que el ejercicio sea mostrar en un printf estos datos).

Código:
int
Cantidad entera 2 bytes o una palabra (varía según compilador).
char
Carácter 1 byte.
float
Almacena valores reales en punto flotante. 1 palabra (4 bytes).
double
Almacena valores reales en doble precisión. 2 palabras (8 bytes).


Gracias de antemano por la ayuda.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Problema ejercicio básico. Lenguaje C.
« Respuesta #5 en: 6 Octubre 2016, 09:39 am »

Busca sobre el operador sizeof, es lo que necesitas.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejercicios básicos C# « 1 2 3 »
.NET (C#, VB.NET, ASP)
~~ 25 169,262 Último mensaje 4 Marzo 2016, 01:50 am
por nosky
Ejercicios Basicos en C#
Ejercicios
Choclito 2 65,761 Último mensaje 17 Octubre 2012, 22:14 pm
por jac88
Ejercicios Básicos « 1 2 »
Ejercicios
Myth.ck 16 18,515 Último mensaje 28 Mayo 2009, 09:27 am
por Eliptico
ejercicios basicos .net « 1 2 »
.NET (C#, VB.NET, ASP)
leliCabello 12 12,519 Último mensaje 24 Marzo 2010, 23:14 pm
por Shell Root
EJERCICIOS BASICOS C++ « 1 2 »
Ejercicios
WiseHidden 13 41,877 Último mensaje 27 Mayo 2011, 05:26 am
por civans89
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines