读一个程序代码,有些部分不懂!求解,希望能讲解详细一些!!
红色字体部分:希望能详细一些!本人还是初学阶段!!void calculate()
{
int fee; //用于记录费用
char times[30]; //用数组存放系统时间
time_t rawtime; //以下几步均为获得系统当前时间,系统时间里的小时和分钟在第12到第16个字符
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime(&rawtime );
strcpy(times,asctime(timeinfo));
int a[30];
int i=0;
for(int m=0,x=0;m<30;m++)
{
if(student[m].mark==1) //用数组记录当前正在被使用的机器
{
a[i]=m;
i++;
x++; //用x统计正被使用机器的总数
}
}
if(i==0)
printf("当前没有学生在上机\n");
else
{
printf("所有学生上机费用如下:\n\n");
for(i=0;i<x;i++) //计算费用
{
printf(" %d号机\t学生:%s %s",student[a[i]].no,student[a[i]].num,student[a[i]].name);
if((student[a[i]].onTime[3]-48)*10+(student[a[i]].onTime[4]-48)>(times[14]-48)*10+(times[15]-48))
fee=(times[11]-48)*10+times[12]-(student[a[i]].onTime[0]-48)*10-student[a[i]].onTime[1]; //为何是减48
else
fee=(times[11]-48)*10+times[12]-(student[a[i]].onTime[0]-48)*10-student[a[i]].onTime[1]+1;
printf("\t费用为: %d 元\n",fee);
}
}
}