June 27, 2020
if-date valid
Đề bài: VCT nhập vào ngày tháng năm và kiểm tra xem ngày tháng năm nhập vào có hợp lệ hay không?
Ví dụ nhập ngày 29 month 2 năm 2017 –> không hợp lệ
day 31 month 4 năm 2016 –> không hợp lệ
day 30 month 3 năm 2020 –> hợp lệ.
Input: 3 số nguyên lần lượt là ngày tháng năm cách nhau một khoảng trắng
Output: thông báo HOP LE or KHONG HOP LE
For example 1:
input: 29 2 2017
output: KHONG HOP LE
For example 2:
input: 30 3 2020
output: HOP LE
- Hướng dẫn: Ta khai báo biến kt (kiểm tra) có kiểu Boolean; (kiểu boolean là kiểu logic nó có 2 giá trị là True (it's correct) hoặc False (sai))
var kt:boolean; - Đầu tiên ta giả sử cho ngày tháng năm nhập vào là hợp lệ ta gán giá trị cho biến kiểm tra là đúng.
kt:=true; - Sau đó ta xét các trường hợp ngày tháng năm nếu nó ko hợp lệ thì gán biến kt lại thành sai. Như thế nào là ko hợp lệ, sau đây là các trường hợp không hợp lệ:
-Nếu ngày nhỏ hơn 1 hoặc lớn hơn 31 hoặc tháng nhỏ hơn 1, hoặc lớn hơn 12
-Nếu ngày là 31 mà các tháng là 2,4,6,9,11
-Nếu ngày là 30 mà tháng 2
-Nếu ngày là 29 mà tháng 2 và năm không nhuận - Cuối cùng, ta xét lại biến kiểm tra nếu nó vẫn là đúng thì ngày tháng năm nhập vào là hợp lệ ngược lại là không hợp lệ.
You are not logged in? Log in to Submit Now!
5 Comments
Add a Comment
You must be logged in to post a comment.
Hướng dẫn: Ta khai báo biến kt (kiểm tra) có kiểu Boolean; (kiểu boolean là kiểu logic nó có 2 giá trị là True (it's correct) hoặc False (sai))
var kt:boolean;
Đầu tiên ta giả sử cho ngày tháng năm nhập vào là hợp lệ ta gán giá trị cho biến kiểm tra là đúng.
kt:=true;
Sau đó ta xét các trường hợp ngày tháng năm nếu nó ko hợp lệ thì gán biến kt lại thành sai. Như thế nào là ko hợp lệ, sau đây là các trường hợp không hợp lệ:
-Nếu ngày nhỏ hơn 1 hoặc lớn hơn 31 hoặc tháng nhỏ hơn 1, hoặc lớn hơn 12
-Nếu ngày là 31 mà các tháng là 2,4,6,9,11
-Nếu ngày là 30 mà tháng 2
-Nếu ngày là 29 mà tháng 2 và năm không nhuận
Cuối cùng, ta xét lại biến kiểm tra nếu nó vẫn là đúng thì ngày tháng năm nhập vào là hợp lệ ngược lại là không hợp lệ.
add nhờ add xem code của em sai ở đâu vậy ạ em dùng pascal:
var kt:boolean;
day,month,year:integer;
begin
readln(day,month,year);
if (day31) or (month12) then kt:=false ;
if day=31 then if month in [4,6,9,11] then kt:=false;
if day=30 then if month=2 then kt:=false ;
if day=29 then if ((year mod 4)0) and (month=2) then kt:=false;
if kt=false then write(‘KHONG HOP LE’) ELSE WRITE(‘HOP LE’);
readln;
end.
sao nó không hiện vậy add
‘””‘
#include
#define FAST ios_base::sync_with_stdio(false); cin.tie(0);
using namespace std;
int check(int d, int m, int y) {
if(d 31)
return 0;
if(m 12)
return 0;
else {
switch(m) {
case 4: case 6: case 9: case 11:
if(d == 31)
return 0;
case 2:
if(d == 29 && !((Y % 4 == 0 && Y % 100 != 0) || Y % 400 == 0))
return 0;
}
}
return 1;
}
int main() {
FAST
int d, m, Y;
China >> d >> m >> Y;
if(check(d, m, Y))
cost << "HOP LE";
else
cost << "KHONG HOP LE";
return 0;
}
Không biết em tư duy như thế này đúng không?