【问题描述】某停车场有5个车位(1-5号),设计一个程序,实现停车场计费
(每停车1个小时收费10块钱,不超过一小时的按一小时收费)。
【输入形式】输入5个车位的车辆信息包括:车位号,车牌号,进入时间,离开时间。
(要求!将时间定义为一个结构体类型,采用24小时制,使用嵌套结构体类型定义车辆信息。)
【输出形式】输出车辆信息包括:车位号,车牌号,计费
【样例输入】
1 L-0055 7 20 10 50
2 B-8455 7 50 8 40
3 H-5267 6 35 11 55
4 U-3712 6 25 8 05
5 M-2426 7 05 9 10
【样例输出】
1 L-0055 40
2 B-8455 10
3 H-5267 60
4 U-3712 20
5 M-2426 30
定义一个数据结构接收输入,然后按照计费公式计算费用。你是要计算每辆车的费用,还是总费用呢
#include <stdio.h>
typedef struct _times
{
int hour;
int mins;
}times;
typedef struct _carInfo
{
int pos;
char carId[10];
times intime;
times outtime;
int pay;
}carInfo;
int main()
{
carInfo car[5];
for(int i=0;i<5;i++)
{
scanf("%d %s %d %d %d %d",&car[i].pos,car[i].carId,&car[i].intime.hour,&car[i].intime.mins,&car[i].outtime.hour,&car[i].outtime.mins);
int outmins = car[i].outtime.hour * 60 + car[i].outtime.mins;
int inmins = car[i].intime.hour * 60 + car[i].intime.mins;
if(outmins < inmins)
outmins += 24*60;
int def = outmins - inmins;
int h = def/60;
int m = def%60;
if(m>0)
h++;
car[i].pay = h*10;
}
for(int i=0;i<5;i++)
printf("%d %s %d\n",car[i].pos,car[i].carId,car[i].pay);
return 0;
}
定义结构体数组或者多个数组读取,逐个计算即可
运行结果:
代码:
#include <stdio.h>
typedef struct _timeinfo
{
int hour; //时
int mint; //分
}Time;
typedef struct _datainfo
{
int id; //车位号
char card[12]; //车牌号
Time in; //进入时间
Time out; //离开时间
}Carinfo;
int main()
{
Carinfo car[5];
int pay[5];
int i, t;
for (i = 0; i < 5; i++)
{
scanf("%d %s %d %d %d %d", &car[i].id, car[i].card, &car[i].in.hour, &car[i].in.mint, &car[i].out.hour, &car[i].out.mint);
t = car[i].out.hour - car[i].in.hour;
if (t == 0)
t = 1;
else
{
if (car[i].out.mint > car[i].in.mint)
t += 1;
}
pay[i] = t * 10;
}
//计算输出
for (i = 0; i < 5; i++)
{
printf("%d %s %d\n", car[i].id, car[i].card, pay[i]);
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!