输出提供奇怪的值

时间:2014-05-05 16:26:44

标签: c

该程序获得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;
}

1 个答案:

答案 0 :(得分:0)

您尚未初始化a, b, c, d, e。在你的if-else阶梯中,你基本上将一个添加到未定义的值。你应该初始化

int a = 0, b = 0, c = 0, d = 0, e = 0;

你会看到更明智的结果。您还需要修复o数组中的越界访问权限,如注释中所述。