[C con Clase] AYUDA CON ESTE EJERCICIO

Deadloop deadloop en hotmail.com
Sab Abr 12 00:11:54 CEST 2008


El pasado 2008-04-01 15:24:20, Gabriel escribió:
 
G> muy buenos dias amigos como puedo terminar este ejercicio
G> /* Ingresar el nombre y la edad de una persona y con estos datos generar automaticamente un saludo y presentar un mensaje 
G> dependiendo si la persona es mayor o menor de edad. Para su ejercicio utilice las funciones de entrada y salida.
G> y una pregunta adicional preguntar si es casado y con quien.

Completar el ejercicio solicitado sin modificar demasiado lo que has hecho creo que quedaría más o menos así:
  
#include<stdio.h>
#include<conio.h>

char nom[30], pareja[30], d;
int edad;

void main()
{
  printf("\n Ingrese el Nombre de la persona: "); gets(nom);
  printf("\n Ingrese edad: "); scanf("%d",&edad);
  printf("Hola %s, Como estas",nom);

  if(edad>=18)
    printf("\n\n\t ERES MAYOR DE EDAD ");
  else
    printf("\n\n\t NO ERES MAYOR EDAD ");

  printf("\n Ingrese estado civil (s/c): ");
  
  /* Comprobar que se presiona el caracter 's' o 'c' unicamente:
     recibir un caracter desde el teclado mientras que este sea
     diferente de 's' y diferente de 'c'. ((d != 's') && (d != 'c')). */
  do
  {
    d = getch();
  } while((d != 's') && (d != 'c'));

  if(d == 'c')
    printf("\n\n\t ERES CASADO(A) ");
  else
    printf("\n\n\t ERES SOLTERO(A) ");

  if(d == 'c')
  {
    printf("\n Ingrese el Nombre de la pareja: "); gets(pareja);
    /* El mensaje podría ser...*/
    printf("%s y %s, un solo corazón...", nom, pareja);
    /* ...o algo a tal efecto. */
  };
}

Muy bien, espero que sea lo que estabas buscando. No lo has dicho, pero parece que estás haciendo algún curso de C, así que me permitiré hacerte un par de sugerencias que quizás puedan resultarte útiles:
Primero, intenta utilizar nombres de variables que sean representativos, es decir, podrías utilizar la variable 'nombre' en lugar de 'nom', aunque esta no es tan sombría como la variable 'd', que si no leo el programa completo no podría saber que representa el estado civil de la persona (podrías intentar con: estCivil, eCiv, e_civil).
Por último, y esto es más un gusto personal que otra cosa, pero te aconsejaría que escribas cada línea de código en una línea diferente, especialmente cuando intentas que un tercero lea tu código. De esa manera evitarás que alguien pase por alto una función como gets(nom); que a primera vista es dificil de ver.
Por lo demás, vas en el buen camino. Un saludo y mucha suerte.

Deadloop.


Más información sobre la lista de distribución Cconclase