为什么acct总是为0

截取了程序有问题的一部分:


void rental()  //计算某台机器的总额 
{
  int s,o;
  float acct;
  printf("请输入机器的编号(1-40):");
  scanf("%d",&s);
  for(o=0;o<c;o++)
    {
        if(s==STUDENT[o].No)
        {
            acct=STUDENT[o].Time_h*1+(float)STUDENT[o].Time_m/60;
        }
        else break;
    } 
    printf("编号为%d的机器应收费总数为%d\n",s,acct);  
}

第十行哪来的c
是不是写错了
如果c是全局变量,那二楼是正解

去掉else break;
最后acct输出格式应该是%f

if条件不满足时break直接跳出for循环了