+1

Can any one tell me what's wrong? This program is of military time.

#include<stdio.h> #include<string.h> #include<time.h> int main() { int h, m; char a[3]; scanf("%d", &h); scanf("%d", &m); scanf(" %s",a); if(((strcmp(a,"AM") == 0) || (strcmp(a,"am") == 0))&& (h == 12)) { h =0; printf("%02d:%02d", h, m); } else if((strcmp (a,"PM")==0)&&((h!=0)&&(h!=12))) { h=h+12; printf("%02d:%02d",h,m); } }

c

1/6/2020 12:54:59 PM

Vishwesh Patel

2 Answers

New Answer

+7

Vishwesh Patel you nees to take user input in given format XX:XX and you didn't nees to check for lower case input you also don't need to use two print statements just reduce that here is what I decoded from your code #include<stdio.h> #include<string.h> #include<time.h> int main() { int h, m; char a[3]; scanf("%d:%d %s", &h, &m, a) ; if(((strcmp(a,"AM") == 0)&& (h == 12))) h =0; else if((strcmp (a,"PM")==0)&&((h!=0)&&(h!=12))) h=h+12; printf("%02d:%02d",h,m); }

0

Thank you