我有这段代码,我想知道为什么变量没有在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 :(得分:3)
您的printf()
错了。
它应该包含%d
转换说明符。字符串控制打印的内容,只是传递更多参数不会使它们显示,除非字符串这样说。
解决这个问题会让你更进一步。另请在循环前添加j = 0
,以确保在打印时j
具有有效值。
答案 1 :(得分:2)
根据某些条件初始化变量不是一个好主意。
如果条件失败且变量从未初始化,并且当您尝试使用变量时,您有一个不确定的变量值
因此,在声明make
之前将j
分配给任何内容
int j=0;
按照大家建议的printf()
使用%d
格式说明符。