为什么变量没有外部循环的值?

时间:2014-11-25 14:33:34

标签: c variables for-loop

我有这段代码,我想知道为什么变量没有在for循环之外返回任何值。

void juizes_nota_alta(str_nomepont a)
{
    int i,j;
    int notamax=0;
    for (i=0;i<MAX_JUIZES;i++)
    {
        if (a.pontuacao[i]>notamax)
        {
            notamax=a.pontuacao[i];
            j=i;
        }

    }
    printf("O juiz que deu a nota mais alta foi:\n",j);

变量j没有返回值。

谢谢

2 个答案:

答案 0 :(得分:3)

您的printf()错了。

它应该包含%d转换说明符。字符串控制打印的内容,只是传递更多参数不会使它们显示,除非字符串这样说。

解决这个问题会让你更进一步。另请在循环前添加j = 0,以确保在打印时j具有有效值。

答案 1 :(得分:2)

根据某些条件初始化变量不是一个好主意。

如果条件失败且变量从未初始化,并且当您尝试使用变量时,您有一个不确定的变量值

因此,在声明make

之前将j分配给任何内容
int j=0;

按照大家建议的printf()使用%d格式说明符。