@Hoang_Tung_Lam: Có chỗ nộp bài không bạn?
Chuyển đổi thời gian định dạng 12 giờ thành định dạng 24 giờ bằng C
define nó chỉ là macros, khai báo lệnh in ra màn hình này nọ vẫn phải kèm dấu ;
ví dụ muốn in cout
#define p(x) cout << x; // không có ; thì compiler nó thay code vào macros sẽ báo lỗi
Hm, đang tìm cách khai báo một mảng char không ; và thay đổi phần tử của nó cũng không cần ;. Còn printf thì đơn giản rồi
Nếu bạn tự viết compiler mới thì chắc là pass, chứ đã C thì buộc phải có ;
Thằng bạn mình hình như nó pass bài này rồi. Nên giờ mình mới tìm. Bạn này đang hỏi mức khó nhất được 1.5 điểm.
Đề đây mà
https://drive.google.com/file/d/0B_s3E_YllMagMnRHLWprUW5RZEU/view
Bài giải bài này là 108 kí tự thì phải
biết vậy thôi
Phải làm bằng C bạn ạ 
@sueruan012 Không có bạn ạ 
Có ai biết xử lí ngày giờ không nhỉ?

Code với 2 dấu ;: http://ideone.com/DXwEUP, 248 char (hơi gà)
Cứ đặt cái define vào, nếu cần dùng thì dùng =))
Cái phần chuyển đổi giờ đang thua

Thử nhồi hết lệnh vào if (), phân tách bằng dấu ‘,’ 
Nhờ @MeigyokuThmn mình đã rút thêm được 1 dấu ; nữa =)) thanks 
1 ;, 241 225 chars
Mới update code. 2 ;, 151 150 chars
Code trên điện thoại nên không đếm kí tự được
(đoạn 12:00:00 lười không code nữa :)))
#include <stdio.h>
int main(int c, char a[]){
if(scanf("%d:",&c),gets(a))
if(
a[6]=='P'&&c<12?c+=12:1,
a[5]='\0',
printf("%d:%s",c,a)
){}
}
Tks @sueruan012 với @MeigyokuThmn gợi ý mấy chỗ quan trọng
có thể bỏ một if đi không?
À ừ nhỉ, bỏ được, cứ nghĩ nó trong if nên chưa có giá trị nên mới tách ra
#include<stdio.h>
int main(int c,char a[]){
if(
scanf("%d:",&c),
gets(a),
a[6]=='P'&&c<12?c+=12:1,
a[5]='\0',
printf("%d:%s",c,a)
){}
}
Tks @Dark.Hades =)) vì chi tiết đưa biến vào argv của main =))
Code mình (124 chars):
#include<stdio.h>
char s[10],m[3];
int main(int H){
if(scanf("%d:%s%s",&H,&s,&m)==3,printf("%d:%s",H+12*(m[0]=='P'),s)){}
}
Sao @Dark.Hades đưa char a[] vào argv của main được nhỉ, mình không quen viết C lắm @@
Nó là biến nhận giá trị ở lúc khởi tạo runtime.
Mình không nhầm thì chương trình/ngôn ngữ nào cũng có cái này, tiếng anh là argument thì phải:
./p.exe --help
c=2 // count của arg
a[0]=p.exe
a[1]=--help
Quả đề oái oăm thật :3, làm cái này thì không biết có tác dụng gì nhỉ, em thấy code của bác @sueruan012 là khó đọc lắm r, cơ mà chân thành cảm ơn các bác @sueruan012, @graktung, @MeigyokuThmn và @Dark.Hades đã đóng góp ý kiến để giải bài này. Mặc dù vẫn có 1 dấu chẩm phẩy nhưng em tạm set thành answer đã :3.
p/s: Chắc em cứ truyền thống mà phang cho dễ đọc vậy, chẳng ham hố làm gì đau mắt quá (trình C của em còn cùi, em cũng mới nhập môn thôi) :((
Thật ra làm cái này biết cho vui thôi. Hãy nghĩ đơn giản như thế này, nếu điều đó hay ho thì 90% (không phải tuyệt đối nhé) sẽ được chia sẻ lên trên Internet, mọi người được biết
) Vả lại code là cần sự dễ hiểu không chỉ cho bạn mà còn người khác. Code nhiều dòng chưa biết được giỏi hay dỡ và code ít dòng cũng thế.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?