【问题标题】:Why variable doesn't have value a outside loop? [closed]为什么变量在外部循环中没有价值? [关闭]
【发布时间】:2015-01-23 14:45:58
【问题描述】:

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

谢谢

【问题讨论】:

  • 不返回任何值是什么意思?如果变量未初始化,在这种情况下,如果您的 if 案例永远不会成功怎么办?

标签: c variables for-loop


【解决方案1】:

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

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

所以在声明 make 时将 j 分配给任何东西之前

int j=0;

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

【讨论】:

    【解决方案2】:

    您的printf() 错误。

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

    解决这个问题将使您更近一步。还要在循环前添加j = 0,以确保j 在打印时具有有效值。

    【讨论】:

    • 完成,谢谢我的错误
    猜你喜欢
    • 2013-09-27
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 2016-08-31
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多