该程序获得5票,并对候选人进行排序,如果该值不在1-5范围内,则会抛出被破坏的选票/计数变量。
它给出了一个非常奇怪的输出,对于count变量,它给了我Null指针赋值。 编译时没有错误。
请帮帮我。
#include<stdio.h>
int main()
{
int n[5];
int a,b,c,d,e;
int o[5]={1,2,3,4,5};
int count;
int i;
for(i=0;i<5;i++)
{
printf("Cast your Vote:");
scanf("%d",&n[i]);
}
for(i=0;i<5;i++)
{
if(n[i]==o[1])
{a+=1;}
else if(n[i]==o[2])
{b+=1;}
else if(n[i]==o[3])
{c+=1;}
else if(n[i]==o[4])
{d+=1;}
else if(n[i]==o[5])
{e+=1;}
else
{count+=1;}
}
printf("Vote for A canditae %d ",a);
printf("vote for b %d ",b);
printf("Vote for C: %d",c);
printf("Vote for D : %d",d);
printf("Vote for E: %d",e);
printf("Spoilt Ballots: %d",count);
return 0;
}
答案 0 :(得分:0)
您尚未初始化a, b, c, d, e
。在你的if-else阶梯中,你基本上将一个添加到未定义的值。你应该初始化
int a = 0, b = 0, c = 0, d = 0, e = 0;
你会看到更明智的结果。您还需要修复o
数组中的越界访问权限,如注释中所述。