嗨,我这里有这段代码
int calMode(RECORD list[], int count)
{
int tempMode = 1;
int i = 1, j, k;
int current = 0;
while ( i <= count)
{
k = 1;
if (list[current].score == list[current + i].score)
{
k++;
i++;
}
printf("%d:", list[current].score);
for(j = 0; j <= k ; j++)
{
printf("*");
}
printf("\n");
current = current + k;
i++;
}
return tempMode;
}
我以为代码的逻辑没问题,为什么会进入无限循环?
任何人都可以提出解决此代码的方法吗?并且假设在进入函数calMode之前对数据列表进行了排序,我认为for循环有问题
我编辑了代码知道我的输出是
60
66
71
71
72
75
79
82
82
82
91
size is: 12
73.50
60:**
66:*
71:*
71:*
72:*
75:*
79:*
82:*
82:*
82:*
91:*
输出错误但不再处于无限循环中