算法:汽车在有里程标志的公路上行驶,从键盘输入开始和结束的里程及时间(以时、分、秒输入),计算并输出其平均速度(千米/小时)
2017-10-23 13:32
1696 查看
#include "stdio.h" int main(void) { float time = 0, velocity = 0; float startDistance = 0, endDistance = 0; float startHour = 0, startMinute = 0, startSecond = 0; float endHour = 0, endMinute = 0, endSecond = 0; //开始及结束的里程数 printf("请输入汽车开始的里程(单位:千米):"); scanf_s("%f", &startDistance); printf("请输入汽车结束的里程(单位:千米):"); scanf_s("%f", &endDistance); //开始及结束的时间 printf("请输入汽车开始的时间(时、分、秒之间用空格隔开):"); scanf_s("%f %f %f", &startHour, &startMinute, &startSecond); printf("请输入汽车结束的时间(时、分、秒之间用空格隔开):"); scanf_s("%f %f %f", &endHour, &endMinute, &endSecond); //计算总用时 time = (endHour + endMinute / 60 + endSecond / 360) - (startHour + startMinute / 60 + startSecond / 360); //计算平均速度 velocity = (endDistance - startDistance) / time; printf("汽车的平均速度为:%f 千米/小时\n", velocity); return 0; }
以上代码仍然有一些问题,比如需要考虑到小时、分钟和秒钟的取值范围。
以下为修改后的代码
#include "stdio.h" int main(void) { float time = 0, velocity = 0; float startDistance = 0, endDistance = 0; float startHour = 0, startMinute = 0, startSecond = 0; float endHour = 0, endMinute = 0, endSecond = 0; //开始及结束的里程数 printf("请输入汽车开始的里程(单位:千米):"); scanf_s("%f", &startDistance); printf("请输入汽车结束的里程(单位:千米):"); scanf_s("%f", &endDistance); //开始及结束的时间 printf("请输入汽车开始的时间(时、分、秒之间用空格隔开):"); scanf_s("%f %f %f", &startHour, &startMinute, &startSecond); printf("请输入汽车结束的时间(时、分、秒之间用空格隔开):"); scanf_s("%f %f %f", &endHour, &endMinute, &endSecond); //判断时间格式是否正确 if ((0 <= startHour && startHour < 24) && (0 <= startMinute && startMinute < 60) && (0 <= startSecond && startSecond < 60) && (startHour <= endHour && endHour < 24) && (0 <= endMinute && endMinute < 60) && (0 <= endSecond && endSecond < 60)) { //计算总用时 time = ((endHour + endMinute / 60 + endSecond / 360) - (startHour + startMinute / 60 + startSecond / 360)); //计算平均速度 velocity = (endDistance - startDistance) / time; printf("汽车的平均速度为:%f 千米/小时\n", velocity); } else printf("时间格式错误!\n"); return 0; }
相关文章推荐
- 52.从键盘上输入若干学生成绩(成绩在0~100之间),计算平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入
- 输入【开始时间】和【结束时间】,计算工作天数,需考虑节假日周末和调休
- 从键盘上输入一个后缀表达式,试编写算法计算表达式的值。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算。例如:234 34+2*$。
- 输出指定年月的月历,年月从键盘输入。每星期一行,从星期日开始,到星期六结束。
- C语言:从键盘输入一个字符串,以感叹号!作为结束标志,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存。
- PHP之键盘输入四个学生的学号 姓名 语文 数学 英语信息 ,计算出每个学生的平均成绩,输出
- 从键盘上输入一个后缀表达式,试编写算法计算表达式的值。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算。例如:234 34+2*$。
- 输入1-53周,输出1-53周的开始时间和结束时间
- 从键盘输入若干个同学的成绩,统计并输出最高成绩 最低成绩 平均分,当输入负数时结束输入
- 输入开始时间和工作天数,计算结束时间,需考虑节假日周末和调休
- SQL语句实现:输入开始和结束时间,得到1小时间隔的平均数据。
- 键盘输入,控制台输出,在遇到over时候结束
- 加班开始时间小于12点,加班结束时间大于13点,计算加班时间
- 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩), 计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
- C++:利用如下公式,编写函数计算∏的值,直到最后一项的绝对值小于e,主程序接收从键盘输入的e,输出∏的值(保留5位小数)。 ∏/4 = 1-1/3+1/5-1/7...
- 输入n个数,输出他们的平均数,以-1为结束标志
- 今天开始学Java 给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。
- 设计一个程序,从键盘上输入若干字符串,利用算法库中的查找函数对给定的字符串进行查找,将查找后的结果输出
- 从键盘任意输入三角形的三边长,若能构成三角形,计算面积并输出,若不能,则输出:不能构成三角新
- c语言从键盘输入班级人数,及每个人的分数,计算出平均分数