﻿ C Program: Find angle between given hour and minute hands - w3resource

# C Exercises: Find angle between given hour and minute hands

## C Programming Mathematics: Exercise-28 with Solution

Write a C program to find the angle between the hour and minute hands.

Example:
Input: int ha = 11
int ma = 30
Output: Angle between hour and minute hands 165

Sample Solution:

C Code:

``````#include <stdio.h>
#include <math.h>

// Function to calculate the angle between the hour and minute hands of a clock
int calcAngle(int ha, int ma) {
// Adjusting hour and minute values to avoid errors for ha = 12 and ma = 60
if (ha == 12)
ha = 0;
if (ma == 60)
ma = 0;

// Calculate hour and minute angles based on clock readings
int hour_angle = (int)(0.5 * (ha * 60 + ma)); // Hour hand angle
int minute_angle = (int)(6 * ma); // Minute hand angle

// Calculate the absolute difference between hour and minute angles
int angle = abs(hour_angle - minute_angle);

// Calculate the smaller angle between the two possible angles
int complementary_angle = 360 - angle; // Calculate complementary angle
return (complementary_angle > angle) ? angle : complementary_angle;
}

int main(void) {
int ha = 11; // Hour hand position
printf("\nAngles move by hour hand: %d", ha);
int ma = 30; // Minute hand position
printf("\nAngles move by minute hand: %d", ma);

// Check for invalid inputs and display an error message if detected
if (ha < 0 || ma < 0 || ha > 12 || ma > 60) {
printf("\nWrong input..!");
} else {
// Calculate and display the angle between hour and minute hands
printf("\nAngle between hour and minute hands: %d", calcAngle(ha, ma));
}

return 0;
}
```
```

Sample Output:

```Angles move by hour hand: 11
Angles move by minute hand: 30
Angle between hour and minute hands 165
```

Flowchart:

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿

Follow us on Facebook and Twitter for latest update.