Dev - C++ - ayuda con este programa

   
Vista:

ayuda con este programa

Publicado por carlos (1 intervención) el 16/04/2016 03:59:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>
#include<conio.h>
main()
{
int p=0,e,sv=1,nv=1;
a:printf("\n\t ingresar edad=\t");
scanf("%i",&e);
sv=sv+1;
if(e>=18)
{
printf("\n\t si vota\t",sv);
}
nv=nv+1;
if(e<=18)
{
printf("\n\t no vota\t",nv);
}
p=p+1;
if(p<=2)
{
goto a;
}
printf("\n\t total poblacion que voto=\t%i",sv);
printf("\n\t total de poblacion que no voto=\t%i",nv);
getch();
}

cuando quiero dar el total de las pobacion que voto y las que no , no me suma bien el resultado que hago
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

ayuda con este programa

Publicado por Thanatos (72 intervenciones) el 16/04/2016 09:20:48
El contador de los votantes y el de las personas que no votaron, deberían ir dentro de los bloques if correspondientes a cada caso.

Las condiciones toman como válida la edad de 18 años, tanto para los que pueden votar, como para los que no pueden hacerlo.

No es recomendable utilizar goto para este tipo de programas. Aunque se utiliza para algunas situaciones, generalmente provoca que se adquieran malos hábitos, en especial cuando se están dando los primeros pasos en la programación. En este link explican con más detalle el uso de goto y el motivo por el que no se recomienda su uso en la mayoría de los casos.


Con goto:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
 
int main()
{
    int edad = 0;
    int votos = 0;
    int personas = 0;
 
    ENTRADA : printf("Ingrese la edad = ");
    scanf("%i", &edad);
 
    if (edad >= 18)
    {
        printf("    * si vota *\n\n");
        ++votos;
    }
    else
    {
        printf("    * no vota *\n\n");
    }
    ++personas;
 
    if (personas < 5)
    {
        goto ENTRADA;
    }
 
    printf("Total votos = %i\n", votos);
    printf("No votaron  = %i\n", personas - votos);
 
    while (getchar() != '\n') { }
    (void) getchar();
    return 0;
}


Sin goto:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
int main()
{
    int edad = 0;
    int votos = 0;
    int personas = 0;
 
    while (personas < 5)
    {
        printf("Ingrese su edad: ");
        scanf("%i", &edad);
 
        if (edad >= 18)
        {
            printf("    * si vota *\n\n");
            ++votos;
        }
        else
        {
            printf("    * no vota *\n\n");
        }
        ++personas;
    }
    printf("Total votos = %i\n", votos);
    printf("No votaron  = %i\n", personas - votos);
 
    while(getchar() != '\n') { }
    (void) getchar();
    return 0;
}
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