#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define NCANDIDATOS 4
#define NVOTANTES 5
/*La elección del delegado de curso es el proceso en que los alumnos del
En un aula se reúnen para elegir al representante del curso ante el consejo
universitario. Los candidatos son sometidos a votación en un proceso
secreto. Cada estudiante solo vota una única vez por un solo candidato.
La información por candidato: cédula, nombre y edad.
De los 4 candidatos se selecciona uno, el que haya alcanzado la mayoría de
votos (ganador) y un segundo representante suplente, el siguiente en mayoría de
votos.
Se pide:
Analice el problema y resuelva aplicando las estructuras más conveniente para su solución.
1. Mostrar la tabla de votación por candidato de los 15 alumnos del total del curso.
2. Proclamar el ganador y suplente por nombre y cantidad de
votos acumulados.
3. Imprimir el nombre del candidato más joven del curso.
*/
typedef struct
{
char nombre [8];
char cedula[15];
int edad;
int votos;
}Pupil;
main ()
{
Pupil Alumnos [NCANDIDATOS];
int i,j, voto,primero=0,segundo=0,mas_joven=0;
system ("cls");
printf ("Registro de Candidatos: \n");
for (i=0;i<NCANDIDATOS;i++)
{
printf ("Ingrese Nombre: ");
scanf ("%s",Alumnos[i].nombre);
printf ("Ingrese Edad: ");
scanf ("%d",&Alumnos[i].edad);
printf ("Ingrese Cedula: ");
scanf ("%s",Alumnos[i].cedula);
Alumnos[i].votos=0;
}
printf ("Registro de Alumnos: \n");
for (i=0;i<NCANDIDATOS;i++)
{
printf ("Candidatos [%d]",i);
printf ("\n");
printf ("Nombre: %s\n",Alumnos[i].nombre);
printf ("Edad: %d \n",Alumnos[i].edad);
printf ("Cedula: %s\n",Alumnos[i].cedula);
}
printf ("\n");
for (i=0;i<NVOTANTES;i++)
{
do {
printf ("Ingrese el numero de candidato a votar: ");
for (j=1; j<=NCANDIDATOS; j++){
printf ("%d",j);
if (j<NCANDIDATOS)
printf (" - ");
}
printf ("\n");
scanf ("%d",&voto);
if (voto<1 || voto>NCANDIDATOS)
printf ("Opcion no valida. Vuelve a intentarlo.\n");
}while (voto<1 || voto>NCANDIDATOS);
(Alumnos[voto-1].votos)++;
}
for (i=0; i<NCANDIDATOS; i++){
if (primero < Alumnos[i].votos){
primero=Alumnos[i].votos;
}
if (segundo < Alumnos[i].votos && Alumnos[i].votos != primero){
segundo=Alumnos[i].votos;
}
}
for (i=0; i<NCANDIDATOS; i++){
if (Alumnos[i].votos == primero){
printf ("El alumno con mayor cantidad de votos es el candidato Numero %d: %s\n",i+1, Alumnos[i].nombre);
printf ("Cantidad de votos sumados: %d\n", Alumnos[i].votos);
}
}
printf ("\n");
for (i=0; i<NCANDIDATOS; i++){
if (Alumnos[i].votos == segundo){
printf ("El segundo alumno con mas votos es el candidato Numero %d: %s\n",i+1, Alumnos[i].nombre);
printf ("Cantidad de votos sumados: %d\n", Alumnos[i].votos);
}
}
printf ("\n");
mas_joven=Alumnos[0].edad;
for (i=0; i<NCANDIDATOS; i++){
if (Alumnos[i].edad < mas_joven){
mas_joven=Alumnos[i].edad;
}
}
for (i=0; i<NCANDIDATOS; i++){
if (Alumnos[i].edad == mas_joven){
printf ("El alumno mas joven del curso es: %s\n", Alumnos[i].nombre);
}
}
printf ("\n");
printf ("LISTA DE DATOS: \n");
printf ("%8s %18s %13s %13s\n", "Nombre","Cedula","Edad","Votos");
for (i=0;i<NCANDIDATOS;i++)
{
printf ("%8s ", Alumnos[i].nombre);
printf ("%18s ", Alumnos[i].cedula);
printf ("%13d ", Alumnos[i].edad);
printf ("%13d\n", Alumnos[i].votos);
}
system ("pause");
return 0;
}