首页 > 电脑

麻烦大神帮我看看c语言计算时钟角度差哪里错了,测试只有两个通过。不知道测试的数值是什么。

更新时间2018-03-24 12:46:29

计算时钟的夹角题目内容:

钟面上的时针和分针之间的夹角总是在 0 ~180之间 ( 包括 0 和180 ) 。举例来说,在十二点的时候两针之间的夹角为 0 ,而在六点的时候夹角为180 ,在三点的时候为90 。本题要解决的是计算 12:00 到 11:59 之间任意一个时间的夹角。

 

输入格式:

每组测试数据包含两个数字:第一个数字代表小时 ( 大于 0 小于等于 12) ,第二个数字代表分 ( 在区间 [0, 59] 上 ) 。

 

输出格式:

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

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

 

输入样例:

12 0

输出样例:

At 12:00 the angle is 0.0 degrees.

程序:

#include <stdio.h>

int main()

{

float h,m,c;

scanf("%f %f",&h,&m);

c=h*30+m/2-m*6;/*求角度差*/

if(c<0){c=c+360;}

if(c>180){c=360-c;} 

if(0<=h&&h<10){

              if(0<=m&&m<10){printf("At 0%.0f:0%.0f the angle is %.1f degrees. ",h,m,c);}

              else{printf("At 0%.0f:%.0f the angle is %.1f degrees. ",h,m,c);}

}else{

          if(0<=m&&m<10){printf("At %.0f:0%.0f the angle is %.1f degrees. ",h,m,c);

                                 }else{printf("At %.0f:%.0f the angle is %.1f degrees. ",h,m,c);}

       }

return 0;

}


错误比较多。1、scanf,括号中不能乱加空格,%f %f,无法正确读取a、b2、既然是整数a、b,那么也不应该用%f3、scanf下面的四行都没有加分号4、如果按题意a、b是整数,那么对于s=a/b,需要转为float

相关标签:大神c语言

上一篇:(61)10=(111101)2=(75)8十进制转换为二进制,采用除以2除余数法

下一篇:在PowerPoint2003中,为文本/对象创建超级链接的方法有哪几种,并分别简述它们的操作步骤