为什么变量没有外部循环的价值?
问题描述:
我有这个代码,我想知道为什么这个变量没有返回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不返回值。
谢谢
答
你printf()
是错误的。
它应该包含一个%d
转换说明符。字符串控制打印的内容,只是传递更多参数不会让它们显示出来,除非字符串如此。
解决这个问题会让你再向前一步。在循环之前还要添加j = 0
以确保j
在打印时具有有效值。
+0
完成,谢谢我的错误 – 2014-11-25 14:38:10
答
基于某些条件初始化变量不是一个好主意。
如果条件不满足和变量永远不会被初始化,当您尝试使用变量你有一个不确定的变量值
所以才分配j
到任何东西,同时声明使
int j=0;
在之前您的printf()
正如大家所建议使用%d
格式说明符。
你是什么意思不返回任何价值?如果变量没有被初始化,在这种情况下,如果你的'if'情况永远不会成功? – Gopi 2014-11-25 14:35:24
审查您的printf。 – DRC 2014-11-25 14:36:08