I have problem with the output it gave zero..
when i type give me zero..
i need know where is the problem exactly and what i should be do ..
when i type give me zero..
i need know where is the problem exactly and what i should be do ..
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct mycandidate{
char name[20];
int votes;
float percentage;
} candidate;
void get_candidate(candidate list[]);
float count_percentage(candidate list[],int);
void print_result(candidate list[],int,int);
int main(){
candidate list[50];
get_candidate(list);
return 0;
}
void get_candidate(candidate list[]){
int i=0,numCandidates=0;
for (i=0;i<10;i++){
printf("Candidate %d\n",i+1);
printf("Enter the name: \n");
scanf("%s",list[i].name); //remove the & from in front of "list[i].name"
if (strcmp("Done",list[i].name) == 0 || strcmp("Finish",list[i].name) == 0)
{break;}
printf("Enter the number of votes:\n");
scanf("%d",&list[i].votes);
printf("\n");
}
numCandidates =list[i].votes;
count_percentage(list,numCandidates);
}
float count_percentage(candidate list[],int numCandidates){
float temp=0.0;
int i=0;
for (i=0;i<numCandidates;i++)
{temp = temp + (list[i].votes);}
for(i=0;i<numCandidates;i++)
{list[i].percentage = ((list[i].votes)/temp) * 100.0;}
print_result(list,numCandidates,temp);
return (0);
}
void print_result(candidate list[],int numCandidates,int temp){
int highest,iplus=0,i=0;
highest = list[0].votes;
for (i=0;i<numCandidates;i++)
{
if (list[i].votes > highest)
{
highest = list[i].votes;
iplus = i;
}
}
printf("\n%-12s %-12s %-12s\n", "Candidate", "Votes Received", "% of Total Votes");
for (i=0;i<numCandidates;i++)
{printf("%-12s %-12d %-12.2f\n",list[i].name,list[i].votes,list[i].percentage);}
printf("%-12s %-12d\n", "Total", temp);
printf("\nThe Winner of the Election is %s\n",list[iplus].name);
}