蓝桥杯模拟赛第一期 充电器C语言

问题描述

小蓝有一个充电器,可以使用不同的电压和电流充电。
给定充电器工作的记录,请计算在这个记录期间总共通过充电传输了多少电能。

输入格式

输入第一行包含一个整数 n , 表示记录的条数。

接下来 n 行,每行包含一个时刻 T 和两个非负整数 U, I,表示在时刻 T 充电电压变为 U(单位伏),电流变为 I(单位A)。最后一行满足 U 和 I 均为 0,在前面的行中也可能出现 U、I 为 0 的情况。其中时间表示为 HH:MM:SS 的格式,时分秒分别用两位十进制数表示(补前导零)。
输入保证时刻依次递增且在 00:00:00 至 23:59:59 的区间内,不用考虑跨过零点充电的情况。

输出格式

输出一个整数,表示总共通电的电能为多少焦耳,其中 1 焦耳等于 1 伏乘以1 安乘以 1 秒。

样例输入

3
12:00:00 12 1
12:01:02 5 2
12:01:10 0 0

样例输出

824

评测用例规模与约定

对于所有评测用例, 1 < = n < = 100 , 0 < = U , I < = 100 1<=n<=100,0<=U,I<=100 1<=n<=100,0<=U,I<=100

思路:焦耳的计算公式为W=U*I*T,UI我们可以从题目直接读出来,问题的关键在于时间T的处理,我们可以把通电后的时间与通电前的时间做差,并转换为秒,问题就迎刃而解了

#include <stdio.h>
int main()
{
	int n = 0;
	int I = 0;
	int j = 0;
	int u[100] = { 0 };
	int i[100] = { 0 };
	int s[100] = { 0 };
	int f[100] = { 0 };
	int h[100] = { 0 };
	int sums = 0;
	int sums2 = 0;
	int J = 0;
	int asum = 0;
	scanf("%d", &n);
	for (I = 0; I < n; I++)
	{
		scanf("%d:%d:%d %d %d", &h[I], &f[I], &s[I], &u[I], &i[I]);

	}
	for (j = 1; j < n; j++)
	{
		sums = h[j] * 3600 + f[j] * 60 + s[j];   //通电前的时间
		sums2 = h[j - 1] * 3600 + f[j - 1] * 60 + s[j - 1];  //通电后的时间
		J = (sums - sums2) * u[j - 1] * i[j - 1];//因为U I用的是通电前那一行的电压电流,所以要J-1
		asum = asum + J;
	}
	printf("%d", asum);
	return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞧好看

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值