问题遇到的现象和发生背景
pta提交就通过一个测试点
用代码块功能插入代码,请勿粘贴截图
#include "stdio.h"
#include "stdlib.h"
struct Student{
int in[3];// 进入时间
int out[3];//推出时间
int sum;//总时间
}st[100];
int add(struct Student* p ){
int h,m,s;
h = p->out[0]-p->in[0];
m = p->out[1]-p->in[1];
s = p->out[2]-p->in[2];
if(m<0){
m = m+60;
h--;
}
if(s<0){
s=s+60;
m--;
}
return h*3600+m*60+s;
}
int main()
{
int n,m;//人数 条数
int max=0;//最大学号
int i,p,j;
scanf("%d %d",&n,&m);
for(i=0;i<100;i++){
st[i].sum=0;
}
for(i=0;i<m;i++){
scanf("%d",&p);
if(p>max)
max=p;
scanf("%d:%d:%d %d:%d:%d",&st[p].in[0],&st[p].in[1],&st[p].in[2],&st[p].out[0],&st[p].out[1],&st[p].out[2]);
st[p].sum+=add(&st[p]);
}
int shu,h,min,s;
for(j=0;j<=max;j++){
shu=0;
for(i=0;i<=max;i++){
if(st[shu].sum<=st[i].sum){
shu =i;
}
}
h = st[shu].sum/3600;
min = st[shu].sum/60;
s = st[shu].sum%60;
printf("%03d %02d:%02d:%02d\n",shu,h,min,s);
// printf("%03d %d\n",shu,st[shu].sum);
st[shu].sum=0;
}
return 0;
}
运行结果及报错内容
结果没有问题
我想要达到的结果
pta 通过