/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

ayuda

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
davidmaidana



Registrado: 04 Jun 2012
Mensajes: 27

MensajePublicado: 30/06/2012 3:06 pm
Título: ayuda

alguien me puede decir por que al compilarlo y ejec, me salen un monton de "printf"

# include <stdio.h>
# include <conio.h>
int main()
{
int i;
char sexo, estado;
for(i=0; i<5; i++)
printf("ing el estado civil:\ns para soltero\nc para casado\nv para viudo\nd para divorciado\t");
scanf("%s",&estado);
printf("ingrese el sexo\nf para femenino\nm para masculino");
scanf("%s",&sexo);

getch();
}
Volver arriba
davidmaidana



Registrado: 04 Jun 2012
Mensajes: 27

MensajePublicado: 30/06/2012 3:08 pm
Título: Re: ayuda

jajaj me faltaba abrir el for
Volver arriba
davidmaidana



Registrado: 04 Jun 2012
Mensajes: 27

MensajePublicado: 30/06/2012 3:23 pm
Título: Re: ayuda

davidmaidana escribió:
por favor alguien me puede decir por que no me da el resultado esperado"

# include <stdio.h>
# include <conio.h>
int main()
{
int i, contc=0, contf=0;
char sexo, estado;
for(i=0; i<3; i++)
{
printf("ing el estado civil:\ns para soltero\nc para casado\nv para viudo\nd para divorciado\t");
scanf("%s",&estado);
printf("ingrese el sexo\nf para femenino\nm para masculino\t");
scanf("%s",&sexo);
}
if (estado=='c')
{
contc++;
}
if(sexo=='f')
{
contf++;
}

printf("la cantidad de personas femeninas son: %s",sexo);
printf("la cantidad de personas casadas son: %s",estado);
getch();
}
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7517
Ubicación: Mexico

MensajePublicado: 01/07/2012 10:54 am
Título:

El problema principal en tu programa esta en las llamadas a scanf, para leer un carácter debes utilizar "%c" y para descartar el carácter siguiente (el avance de linea) utilizas "%*c".

Salvo la llamada a "getch" al final de la función principal no se requiere del uso de conio de Borland.

Las verificaciones de estado y sexo las debes colocar dentro del bucle y para imprimir el resultado correcto debes imprimir el valor de los contadores.

El programa con las correcciones es:
Código:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   int i;
   int casadas = 0;
   int sexo_femenino = 0;
   char sexo, estado;
   
   for (i = 0; i < 3; i++) {
      printf("Estado civil:\ns soltero\nc casado\nv viudo\nd divorciado:\n");
      scanf("%c%*c", &estado);
      printf("Sexo:\nf femenino\nm masculino\n");
      scanf("%c%*c", &sexo);
     
      if (estado == 'c')
         casadas++;
      if (sexo == 'f')
         sexo_femenino++;
   }
   
   printf("Sexo femenino: %d\n", sexo_femenino);
   printf("Personas casadas: %d\n", casadas);
   
   return EXIT_SUCCESS;
}


Si no tienes un curso o libro de calidad sobre C consigue uno, sobre los primeros puedes consultar la sección "Cursos" de este sitio y sobre los segundos puedes leer recomendaciones vía el motor de búsqueda de los foros.

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
davidmaidana



Registrado: 04 Jun 2012
Mensajes: 27

MensajePublicado: 02/07/2012 4:24 pm
Título:

muchas gracias por todo.
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com