C语言编程求出时针和分针转一圈相遇的时间

问题: 时针和分针开始在12点重合,这次重合不算,当时针再一次回到12点位置时,时针和分针重合了多少次?用C语言编程怎么编???? #include <stdio.h> //这里有个假设,是针对电子钟的,因为电子钟上面表盘一圈有60格 //分针每走1格为1分钟。 //时针每走1格为12分钟。 //时针走5格为1小时。 //电子钟的时针和分针肯定是在格上相遇。 //机械表的情况有些复杂,因为秒针时针分针都时刻在动。(没找到好的求解办法) //判断iHour时 iMinute 分,时针和分针是否相遇 //例如判断 1点05分,是否时针和分针是否相遇,此时iHour = 1,iMinute =5; int CheckSameOffsite(int iHour,int iMinute) { int iHourOffsite,iMinuteOffsite; //每小时时针走5格;时针走1格,分针走12格 iHourOffsite = iHour * 5 + iMinute / 12; iMinuteOffsite = iMinute; //分针偏移的格数 return (iHourOffsite == iMinuteOffsite); } int main(int argc, char *argv[]) { int iHour,iMinute; int iMeetTimes;//相遇次数 iMeetTimes = 0; printf("时针和分针从时间0点1分开始计时...\n"); for (iHour=0;iHour<12;iHour++) //0 - 11点 for (iMinute=1;iMinute<=60;iMinute++) // 1 -60 分 { if (CheckSameOffsite(iHour,iMinute)) { printf("%d点%d分相遇\n",iHour,iMinute); iMeetTimes++; } } printf("总计:\t12个小时后时针和分针共有%d次相遇\n",iMeetTimes); return 0; } 输出结果: 时针和分针从时间0点1分开始计时... 1点5分相遇 2点10分相遇 3点16分相遇 4点21分相遇 5点27分相遇 6点32分相遇 7点38分相遇 8点43分相遇 9点49分相遇 10点54分相遇 11点59分相遇 11点60分相遇 总计:   12个小时后时针和分针共有12次相遇 Press any key to continue 这个只适合特殊的电子钟,即分针每过一分钟才走一格,时针每过12分钟才走一格的电子钟 本文来自桂电二频某帖子......
posted @ 2011-07-02 22:20  gxldan  阅读(357)  评论(0编辑  收藏  举报