ابي اعرف وين الخطأ بالتحديد ..
وجزاكم الله الخير ..
#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,num,numCandidates=0;
printf("Enter the Number of Candidates: ");
scanf("%d",&num);
for (i=0;i<num;i++){
printf("Candidate %d\n",i+1);
printf("Enter the name: \n");
scanf("%s",list.name); //remove the & from in front of "list.name"
if (strcmp("Done",list.name) == 0 || strcmp("Finish",list.name) == 0)
{break;}
printf("Enter the number of votes:\n");
scanf("%d",&list.votes);
printf("\n");
}
numCandidates =list.votes;
count_percentage(list,numCandidates);
}
float count_percentage(candidate list[],int numCandidates){
float total=0.0;
float temp=0.0;
for (int i=0;i<numCandidates;i++){
temp = temp + (list.votes);
}
for(int i=0;i<numCandidates;i++){
list.percentage = ((list.votes)/temp) * 100.0;
}
print_result(list,numCandidates,temp);
return (0);
}
void print_result(candidate list[],int numCandidates,int temp,float total){
int highest;
highest = 0;
for (int i=0;i<numCandidates;i++){
if (list.votes > highest){
highest = list.votes;
}
}
printf("\n%-12s %-12s %-12s\n", "Candidate", "Votes Received", "% of Total Votes");
for (int i=0;i<numCandidates;i++)
{printf("%-12s %-12d %-12.2f\n",list.name,list.votes,list.percentage);}
printf("%-12s %-12d\n", "Total", temp);
printf("\nThe Winner of the Election is %s\n",list[highest].name);
}