怎么用C语言编写24小时制到12小时制的转换?

有没有C语言编程高手?帮帮忙`输入输出时间格式为XX:XX:XX

分别用三个函数:

输入(time_input)、输出(time_output)、转换(time_change)函数来实现;

参考如下:


#include<iostream>
#include<cstdlib>
using namespace std;
void time_input(int& hour,int& minute);
void time_output(int& hour,int& minte,char& noon);
void time_change(int& hour,int& minte,char& noon);
int main()
{
    int hour,minute;
    char p;
    char noon;
   do{
    time_input(hour,minute);
    time_change(hour,minute,noon);
    time_output(hour,minute,noon);
    cout<<"Enter 'r' to again. ";
    cin>>p;
   }while(p=='R'||p=='r');
 system("pause");//某些编译器此处可以不要
    return 0;
}
void time_input(int& hour,int& minute)
{
    cout<<"Enter hour:";
    cin>>hour;
    cout<<"Enter minte:";
    cin>>minute;
}
void time_output(int& hour,int& minute,char& noon)
{
    cout<<"12-hours: "
         <<hour
         <<":"
         <<minute
         <<" "
         <<noon
         <<endl;
}
void time_change(int& hour,int& minute,char& noon)
{
    if((hour>12&&hour<=24)&&(minute>=0&&minute<=60))
    {
    noon='P';
    hour-=12;
    }
    else if((hour>=0&&hour<12)&&(minute>=0&&minute<=60)) {noon='A';}
    else {cout<<"Time is error!\n";}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-09
后面的AM是早晨,PM是午后,没有对输入数据进行判错
#include "stdio.h"
void main()
{
int h,m,s;
char a;
char c;
scanf("%d%c%d%c%d",&h,&c,&m,&c,&s);
if (h>12)
{
h-=12;
a='P';
}
else a='A';
printf("%d:%d:%d %cM\n",h,m,s,a);

}本回答被网友采纳
相似回答