C++ 为什么可以';编译器是否输入if语句?

C++ 为什么可以';编译器是否输入if语句?,c++,C++,这是一个简单的时间转换代码。问题是: 给定12小时AM/PM格式的时间,将其转换为军事(24小时)时间 注意:12小时制的午夜是12:00:00,24小时制的午夜是00:00:00。12小时制的中午是12:00:00,24小时制的中午是12:00:00 我的代码:- #include<iostream> using namespace std; int main() { char a[10]; for(int i=0;i<10;i++) cin>&

这是一个简单的时间转换代码。问题是:

给定12小时AM/PM格式的时间,将其转换为军事(24小时)时间

注意:12小时制的午夜是12:00:00,24小时制的午夜是00:00:00。12小时制的中午是12:00:00,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];
}
#包括
使用名称空间std;
int main()
{
chara[10];
对于(int i=0;i>a[i];
如果(a[0]==1&&a[1]==2)
{
如果(a[8]=='a')
{
a[0]=0;
a[1]=0;
}
}
else如果(a[8]=='P')
{
a[0]+=1;
a[1]+=2;
}

对于(int k=0;k,如Mat所说,整数0-9和ASCII中的字符没有直接映射。请检查。您可以将数字表示为带引号的字符(因此“1”而不是1),它们将被读取为ASCII值(因此“1”将被读取为49)或者直接使用ASCII值。我推荐第一种方法。

'1'
没有值
1
对于这样的问题,如果有一个特定值显示问题,只需将
a
的内容设置为适当的值。无需输入循环或问题文本中的解释。
char a[] = "12:00:00AM
。这使其他人更容易看到你在做什么并重现问题。在提交问题之前,始终尽可能简化你的问题。如果是错误报告,它将得到更多关注。如果是故障排除情况,你可能会找到自己的答案,而不必询问问题问题。@HARSHMISHRA如果有帮助,请给出答案,以便将问题从未回答问题列表中删除。如果不需要,请不要采用ASCII。将数字的字符代码转换为相应的数字既简单又方便:
ch-'0'
只要
ch
是值
'0'..'9'
之一,就可以工作>包容。彼得的方法更好。我完全没有想到这一点。