这是一个简单的时间转换代码。问题是:
给出12小时AM / PM格式的时间,将其转换为军事(24小时)时间。
注意::午夜是12点钟的12:00:00 AM,24点钟是00:00:00。中午是在12小时制的12:00:00 PM和24小时制的12:00:00。
我的代码:-
#include<iostream>
using namespace std;
int main()
{
char a[10];
for(int i=0;i<10;i++)
cin>>a[i];
if( a[0]== 1 && a[1]== 2 )
{
if(a[8]=='A')
{
a[0]=0;
a[1]=0;
}
}
else if(a[8]=='P')
{
a[0]+=1;
a[1]+=2;
}
for(int k=0;k<8;k++)
cout<<a[k];
}
但是,当输入为12:00:00 AM时,应将其更改为00:00:00,但是由于某种原因,它没有输入第一个if语句。即使对于12:34:41 AM,它也会给出12:34:41。
我知道错误可能真的很愚蠢,但是请帮我解决这个问题
答案 0 :(得分:0)
就像Mat所说的那样,整数0-9和ASCII中的字符没有直接映射。签出this。您可以将数字表示为带引号的字符(因此用“ 1”代替1),它们将被读取为其ASCII值(因此“ 1”将被读取为49)或直接使用ASCII值。我推荐第一种方法。