2014-11-25 60 views
-5

我有这个代码,我想知道为什么这个变量没有返回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不返回值。

谢谢

+0

你是什么意思不返回任何价值?如果变量没有被初始化,在这种情况下,如果你的'if'情况永远不会成功? – Gopi 2014-11-25 14:35:24

+3

审查您的printf。 – DRC 2014-11-25 14:36:08

回答

3

printf()是错误的。

它应该包含一个%d转换说明符。字符串控制打印的内容,只是传递更多参数不会让它们显示出来,除非字符串如此。

解决这个问题会让你再向前一步。在循环之前还要添加j = 0以确保j在打印时具有有效值。

+0

完成,谢谢我的错误 – 2014-11-25 14:38:10

2

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

如果条件不满足和变量永远不会被初始化,当您尝试使用变量你有一个不确定的变量值

所以才分配j到任何东西,同时声明使

int j=0; 

在之前您的printf()正如大家所建议使用%d格式说明符。

相关问题