C/Visual C - problema con C

 
Vista:

problema con C

Publicado por charly (1 intervención) el 30/09/2009 05:28:31
Hola mi problema es que recien empiezo en la facu de programacion
y me pidi la profe que haga un ejercicio que me diga de un consultorio cuantas personas mayores y masculinas fueron atendidas y con los femeninos y luego que los menores tambien los divida en masculinos y femenino y cuanto fueron atendidos ya lo tengo casi listo pero no me funca bien grax de antemano

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
char continua, genero=0;
int masculinos4, menores, edad=0;
int femeninos2, masculinos2, masculinos, femeninos=0;
int femeninos3, masculinos3=0;
int femeninos4, mayores, masculinos1, femeninos1=0;
char M, F=0;
main ()
{
int clrscr();
while (continua !='N')
{
printf ("\nIngrese género (M/F): ");
scanf ("%s", &genero);
printf ("\nIngrese edad: ");
scanf ("%d", &edad);
if (genero != M)
{
if (edad >= 18)
{
masculinos1=masculinos1++;
}
else
{
masculinos2=masculinos2++;
}
}
else
{
if (edad >= 18)
{
femeninos1=femeninos1+1;
}
else
{
femeninos2=femeninos2+1;
}
}

printf ("\nContinua S/N: ", continua);
scanf ("%s", &continua);
}
printf ("\nmayores masculinos son:%d", masculinos1);
printf ("\nmenores masculinos son:%d", masculinos2);
printf ("\nmayores femeninos son:%d", femeninos1);
printf ("\nmenores femeninos son:%d\n", femeninos2);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con C

Publicado por Howling (2 intervenciones) el 30/09/2009 09:55:46
Buenas

Problemas que veo son:

1) Declaras variables pero no las inicializas

while (continua !='N')

Aqui deberias haber puesto previamente continua = 'S' (o algo parecido).

2) Incorrecto tipo de variable

char continua, genero=0;
scanf ("%s", &genero);

Aqui has definido "genero" como char pero lo estas recuperando como string (%s), deberias cambiarlo por "%c" o declarar "genero" como char[2]

3) Incorrecto uso de la variable

Defines -> char M, F=0;
y luego usas -> if (genero != M)

Aqui estas confundiendo variable con valor, tu has declarado una variable con nombre "M", no con valor 'M'

Para este tipo de valores es mejor usar constantes:

#define MASCULINO 'M'
#define FEMENINO 'F'

if (genero == MASCULINO) -> es hombre
else -> es mujer

4) Incorrecta llamada a la funcion:

int clrscr();

Tal como la has puesto parece una definicion, con poner "clrscr();" es suficiente, o si quieres comprobar lo que devuelve por "rc = clrscr();" (donde rc seria un int)

5) Por otro lado estas asignaciones no quedan muy bien:

masculinos1=masculinos1++;
femeninos1=femeninos1+1;

con poner:

masculinos1++;
femeninos1++;

es suficiente

6) Esto ya es de puntilloso (opcional), pero trata de no declarar las variables como globales (declaralas dentro del main) y declara solo las variables que uses.

Y cambia el main () a secas por "void main (void)"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar