but still last thing doesn't work is when pass winner it will give me nothing ..
#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[], int *);
float count_percentage(candidate list[],int);
void print_result(candidate list[],int,int,int);
int main(){
int numCandidates=0,total,winner,sum=0,highest,i;
float percentage=0.0;
candidate list[50];
get_candidate(list,&numCandidates);
for (i=0;i<numCandidates;i++)
{sum = sum + list[i].votes;}
total = sum;
percentage=count_percentage(list,numCandidates);
for(i=0;i<numCandidates;i++)
{list[i].percentage = ((list[i].votes)/percentage) * 100.0;}
highest = list[0].votes;
for (i=0;i<numCandidates;i++)
{
if (list[i].votes > highest)
{
highest = list[i].votes;
winner = i;
}
}
print_result(list,total,winner,numCandidates);
return 0;
}
void get_candidate(candidate list[],int *numCandidates){
int num,i;
for (i=0;i<500;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=i;
}
float count_percentage(candidate list[],int numCandidates)
{
float temp=0.0;
int i;
for (i=0;i<numCandidates;i++)
{temp = temp + (list[i].votes);}
return temp;
}
void print_result(candidate list[],int total,int winner,int numCandidates){
int i;
printf("\n%-15s %-15s %-15s\n", "Candidate", "Votes Received", "% of Total Votes");
for (i=0;i<numCandidates;i++)
{printf("%-15s %-15d %-15.2f\n",list[i].name,list[i].votes,list[i].percentage);}
printf("%-15s %-15d\n", "Total", total);
printf("\nThe Winner of the Election is %s\n",list[winner].name);
}

New Topic/Question
Reply




MultiQuote



|