C语言程序设计—北京理工大学MOOC提交作业(1) 下载本文

对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。

再看一看,想一想:是否可以不用if 语句,只使用 printf 函数来简化你的程序?

测试输入 期待的输出 时内存额间限制外限 进制程 1秒 64M 0 测试用例 1 测试用例 2 测试用例 3 测试用例 4 测试用例 5 测试用例 以文本方式显以文本方式显示 示 1. 12 0? 1. At 12:00 the angle is 0.0 degrees.? 以文本方式显以文本方式显示 示 1. 12 30? 1秒 64M 0 1. At 12:30 the angle is 165.0 degrees.? 1秒 64M 0 以文本方式显以文本方式显示 示 1. 6 0? 1. At 6:00 the angle is 180.0 degrees.? 以文本方式显以文本方式显示 示 1. 3 0? 1. At 3:00 the angle is 90.0 degrees.? 1秒 64M 0 以文本方式显以文本方式显示 示 1. 3 3? 1. At 3:03 the angle is 73.5 degrees.? 以文本方式显示 以文本方式显示 1. At 3:09 the angle is 40.5 degrees.? 1秒 64M 0 1秒 64M 0 测试输入 期待的输出 时内存额间限制外限 进制程 6 1. 3 9? 测试用例 7 测试用例 8 测试用例 9 测试用例 10 以文本方式显以文本方式显示 示 1. 4 0? 1. At 4:00 the angle is 120.0 degrees.? 1秒 64M 0 1秒 64M 0 以文本方式显以文本方式显示 示 1. 5 59? 1. At 5:59 the angle is 174.5 degrees.? 以文本方式显以文本方式显示 示 1. 4 20? 1. At 4:20 the angle is 10.0 degrees.? 1秒 64M 0 以文本方式显以文本方式显示 示 1. 0 0? 1. At 0:00 the angle is 0.0 degrees.? 1秒 64M 0 Code

#include int main() {

int hour, minute, temp;

float angle, h_angle, m_angle; scanf(\ temp = hour;

if(hour == 12) temp = 0;

h_angle = temp * 30.0 + minute * 0.5; m_angle = minute * 6.0;

angle = h_angle > m_angle ? h_angle - m_angle : m_angle - h_angle; if(angle > 180.0) angle = 360.0 - angle;

printf(\ return 0; }

2.【日期】确定母亲节

成绩 折扣 10 开启时间 2014年10月28日 星期二 10:35 0.8 折扣时间 2014年11月12日 星期三 10:35 关闭时间 2014年11月19日 星期三 10:35 允许迟交 否 母亲节是每年的五月第二个星期天,针对输入的年份,计算该年的哪一天是母亲节。 输入: 年份 输出:

日期(5月的哪一天)

测试输入 期待的输出 时间限制 内存限制64M 额外进程0 测试用例 1 以文本方式显示 以文本方式显示 1秒 1. 2014? 1. 11? 测试用例 2 以文本方式显示 以文本方式显示 1秒 1. 2015? 1. 10? 64M 0 测试用例 3 以文本方式显示 以文本方式显示 1秒 1. 2012? 1. 13? 64M 0 Code: #include int main() {

int year, n, week, total, day;

scanf(\

if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

{ } else { }

week = (week + total) % 7; if (week == 0) week = 7; day = 7 - week + 8;

week = (year + year / 4 + year / 400 - year / 100) % 7; for(n = 0; n < 5; n++) { }

if(n == 0) total = 0;

if(n == 1 || n == 3) total += 31; if(n == 2) total += 28; if(n == 4) total += 30;

week = (year + year / 4 + year / 400 - year / 100 - 1) % 7; for(n = 0;n < 5; n++) { }

if(n == 0) total = 0;

if(n == 1 || n == 3) total += 31; if(n == 2) total += 29; if(n == 4) total += 30;

printf(\ return 0; }

3.【日期】计算星期

成绩 10 开启时间 2014年10月28日 星期二 10:40