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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Buenas noches soy nuevo en lenguaje c, quisiera de su colaboración para resolver
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Buenas noches soy nuevo en lenguaje c, quisiera de su colaboración para resolver  (Leído 694 veces)
Pentesting!

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Buenas noches soy nuevo en lenguaje c, quisiera de su colaboración para resolver
« en: 20 Julio 2020, 09:05 am »

Código
  1. */Elabore un programa en lenguaje C que pida el nombre y la edad de dos hermanos, el programa
  2. debe mostrar un mensaje indicando el nombre y la edad del hermano mayor y, cuantos anos de
  3. diferencia lo distancia con el hermano menor.
  4. NOTA: Debe definir las variables tipo arreglo y, hacer uso de funciones para resolver el enunciado.*/
  5.  
  6. //En si lo que estoy tratando es de pasar el array tipo char como parametro a la funcion validator
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. void validator(int [], char []);
  12.  
  13. int main() {
  14. char arrayCadenas[20];
  15. int edad[2],i;
  16.  
  17. for(i=0; i<2; i++){
  18. printf("Nombre:");
  19. scanf("%s",&arrayCadenas[i]);
  20. printf("edad:");
  21. scanf("%d",&edad[i]);
  22. }
  23. validator(edad,arrayCadenas);
  24. return 0;
  25. }
  26.  
  27. void validator(int edad[], char arrayCadenas[]){
  28. if(edad[0] > edad[1]){
  29.  
  30. printf("Nombre:%s",arrayCadenas[0]);
  31. printf("Edad:%d",edad[0]);
  32. }
  33. else{
  34.  
  35. printf("Nombre:%s",arrayCadenas[1]);
  36. printf("Edad:%d",edad[1]);
  37. }
  38. }
  39.  
  40.  


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 918



Ver Perfil
Re: Buenas noches soy nuevo en lenguaje c, quisiera de su colaboración para resolver
« Respuesta #1 en: 21 Julio 2020, 01:26 am »

El problema que tienes es que estás utilizando un array unidimensional para el nombre y debería ser bidimensional.
Cuando se trabaja con cadenas de caracteres, cada caracter es una posición del array por lo que la primera fila debería tener el primer nombre y la segunda fila, el segundo nombre.

Además para guardar cadenas es mejor utilizar fgets() que scanf().

Código
  1. #define MAX_HERMANOS 2
  2. #define MAX_SIZE 20
  3.  
  4. int main(){
  5.  char nombres[MAX_HERMANOS][MAX_SIZE];
  6.  for(int i = 0; i < MAX_HERMANOS; ++i){
  7.    printf("Introduce el nombre del hermano %d: ", i+1);
  8.    fgets(nombres[i], MAX_SIZE, stdin);
  9.    // Eliminar el salto de linea que se genera al pulsar ENTER y limpiar el buffer:
  10.    if(nombres[i][strlen(nombres[i])-1] == '\n') nombres[i][strlen(nombres[i])-1] = '\0';
  11.    else while(getchar() != '\n');
  12.  }
  13. }


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
buenas noches
Juegos y Consolas
dannyFilth 0 828 Último mensaje 5 Noviembre 2008, 01:19 am
por dannyFilth
hola buenas noches tengo un nuevo problema
Juegos y Consolas
victor1960 2 1,896 Último mensaje 21 Enero 2010, 09:11 am
por Ariath
Buenas noches, Necesito ayuda.
Java
ArhennJosey 2 2,235 Último mensaje 21 Mayo 2010, 01:47 am
por ArhennJosey
BUENAS NOCHES ALGUIEN QUE ME AYUDE POR FAVOR...
Dispositivos Móviles (PDA's, Smartphones, Tablets)
jagg0805 0 1,192 Último mensaje 2 Marzo 2012, 03:30 am
por jagg0805
Buenas noches
Dudas Generales
2.0 3 1,683 Último mensaje 12 Febrero 2013, 23:55 pm
por #Borracho.-
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines