C语言时钟角度(错哪了)

2025-01-04 12:46:47
推荐回答(4个)
回答1:

你这里面判断的情况没有考虑清楚
比如说11:05分的时候,你由于一直是用分针的角度去减去时针的角度,所以此时得到了一个负值。然而在负值的情况下还区分为大于180和小于180。这里你没有考虑到。
改完后程序如下:
#include"stdio.h"
int main(){
int a,b;
float c;
scanf("%d %d",&a,&b);
c=(b*6)-(30*a+b/2);
if (c<0) {
c=-c;
}
if (c>180)
{
c=360-c;
printf("At %d:%02d the angle is %.1f degrees.\n",a,b,c);
}
else
printf("At %d:%02d the angle is %.1f degrees.\n",a,b,c);
return 0;
}

回答2:

我帮你改了一下,你看看:

#include"stdio.h"
int main()
{
int a,b;
float c;
scanf("%d %d",&a,&b);
c=(b*6)-(30*a+b/2);

// 把这句话单独拉出来
if (c<0)
{
c=-c;
}

// 把c是否大于180作为独立分支去处理
if (c>180)
{
c=360-c;
printf("At %d:%02d the angle is %.1f degrees.\n",a,b,c);
}
else
{
printf("At %d:%02d the angle is %.1f degrees.\n",a,b,c);
}
}

回答3:

#include
int main()
{
int a,b;
float c;
scanf("%d%d",&a,&b);
c=(b*6)-(30*a+b/2);
if(c==12)c=0;
if (c<0)
{
c=-c;
printf("At %d:%02d the angle is %.1f degrees.\n",a,b,c);
}
else
if (c>180)
{
c=360-c;
printf("At %d:%02d the angle is %.1f degrees.\n",a,b,c);
}
else
printf("At %d:%02d the angle is %.1f degrees.\n",a,b,c);
}
我这么运行对着呢,你试试行不?

回答4:

你的第二个是 else{ if{} }还是else if{}