Study Lập Trình

Học lập trình dành cho người mới bắt đầu!

ads

Bài 3. Chương trình tính tuổi - C

1. Bài toán:

Yêu cầu: Viết chương trình nhập vào năm sinh của bạn và tính xem bạn bao nhiêu tuổi?
  • Input: Nhập năm sinh của bạn
  • Output: In ra màn hình tuổi của bạn

2. Thuật toán:


Bước 1. Nhập năm sinh từ người dùng.
Bước 2. Lấy năm hiện tại từ hệ thống.
Bước 3. Tính tuổi bằng cách lấy hiệu của năm hiện tại và năm sinh.
Bước 4. Hiển thị kết quả tuổi lên màn hình.

3. Code C:

#include <stdio.h>
#include <conio.h>
#include <time.h>

int main()
{
	int namsinh, namhientai, tuoi;
	printf("\nNhap vao nam sinh: ");
	scanf("%d", &namsinh);
	// Lấy năm hiện tại từ máy tính
	time_t t = time(0);
	struct tm *Now = localtime(&t);
	namhientai = Now ->tm_year + 1900;
	tuoi = namhientai - namsinh;
	printf("\nBan sinh nam %d => ban %d tuoi !", namsinh, tuoi);
	return 0;
}

4. Giải thích Code:

Dong code Ý nghĩa
int namsinh, namhientai, tuoi; khai báo các biến cần thiết để lưu trữ năm sinh, năm hiện tại và tuổi.
printf("\nNhap vao nam sinh: "); hiển thị thông báo yêu cầu người dùng nhập năm sinh.
scanf("%d", &namsinh); dùng để nhận giá trị của năm sinh từ người dùng.
Dòng time_t t = time(0); lấy thời gian hiện tại từ máy tính.
Dòng struct tm *Now = localtime(&t); lấy cấu trúc thời gian hiện tại để lấy năm hiện tại.
Dòng namhientai = Now ->tm_year + 1900; tính năm hiện tại từ cấu trúc thời gian và lưu vào biến namhientai.
Dòng tuoi = namhientai - namsinh; tính tuổi bằng cách lấy hiệu của năm hiện tại và năm sinh.
Dòng printf("\nBan sinh nam %d => ban %d tuoi !", namsinh, tuoi); hiển thị kết quả tuổi lên màn hình.

5. Kết quả Python:

Nhap vao nam sinh: 1984
Ban sinh nam 1984 => ban 39 tuoi !
Kết luận:
  • Đoạn mã này sử dụng thư viện conio.h để sử dụng hàm getch() để dừng màn hình, nhưng thư viện này không phải là một phần của ngôn ngữ C chuẩn. Do đó, sẽ có sự phụ thuộc vào trình biên dịch và hệ điều hành cụ thể để hỗ trợ thư viện này. Nếu không cần thiết, bạn có thể xóa dòng #include và getch() để tránh sự phụ thuộc này.
  • Đoạn mã sử dụng hàm time() và localtime() từ thư viện time.h để lấy năm hiện tại. Tuy nhiên, lưu ý rằng năm hiện tại có thể không chính xác nếu hệ điều hành hoặc môi trường chạy không hỗ trợ chính xác. Để đảm bảo tính chính xác, hãy đảm bảo rằng hệ điều hành và môi trường chạy hỗ trợ các hàm này.
  • Đoạn mã không kiểm tra lỗi nhập liệu từ người dùng. Nếu người dùng nhập giá trị không hợp lệ, như ký tự hoặc năm sinh âm, chương trình có thể không hoạt động đúng. Để giải quyết điều này, bạn có thể thêm kiểm tra và xử lý lỗi để đảm bảo tính bảo mật và độ tin cậy của chương trình.
  • Sử dụng định dạng %d trong hàm printf và scanf để làm việc với kiểu dữ liệu số nguyên (integer). Nếu bạn muốn làm việc với kiểu dữ liệu khác, bạn có thể sử dụng các định dạng phù hợp như %f cho số thực (float) hoặc %s cho chuỗi ký tự (string).
Những lưu ý trên giúp bạn hiểu rõ hơn về đoạn mã và xử lý các vấn đề có thể xảy ra. Luôn đảm bảo kiểm tra và thử nghiệm kỹ lưỡng để đảm bảo chương trình hoạt động như mong đợi trên mọi môi trường chạy.

Không có nhận xét nào:

Đăng nhận xét