Kiểm tra số nguyên trong C | Laptrinhcanban.com

HOME › >>

Kiểm tra số nguyên trong C

Hướng dẫn cách kiểm tra số nguyên trong C. Bạn sẽ học được cách tạo một hàm cơ bản để kiểm tra số nguyên trong C cũng như cách liệt kê và tính tổng tất cả các số nguyên bằng C sau bài học này.

Số nguyên số thực trong C là gì

Trong ngôn ngữ C, khái niệm số nguyên và số thực cũng giống với khái niệm mà chúng ta hay dùng.

Số nguyên bao gồm các số tự nhiên (1,2,3…), số âm (-1,-2,-3…) và số 0.
Những con số thông thường mà chúng ta thường sử dụng được gọi là số nguyên.

Số thực là một số nguyên cộng với một giá trị thập phân. Ví dụ, các số như 1.0, 5.2, -9.687, 3.14159,… chẳng hạn. Số thực cũng bao gồm số nguyên trong nó.
Tóm lại, các số bao gồm cả phần thập phân được gọi là số thực.

Số nguyên trong C có thể biểu diễn bởi giá trị chính xác của nó, trong khi số thực trong C lại được biểu diễn dưới dạng dấu phẩy động, điều đó có nghĩa là số thực không thể biểu diễn bởi giá trị chính xác, mà chúng ta có thể làm tròn lên hoặc làm tròn xuống số chữ cái sau phần thập phân để biểu diễn nó với các giá trị khác nhau.

Kiểm tra số nguyên trong C

Số nguyên trong C có khả năng biểu diễn bởi giá trị chính xác của nó, trong khi số thực thì có thể làm tròn lên hoặc làm tròn xuống thành các giá trị khác nhau.

Bằng cách sử dụng tính chất này, chúng ta có thể so sánh hai giá trị làm tròn lênlàm tròn xuống của số đã cho, và nếu hai giá trị này giống nhau thì số đã cho chính là một số nguyên.

Chúng ta cần sử dụng tới hai hàm trong header file <math.h> là hàm eil() để làm tròn lên, và hàm floor để làm tròn xuống giá trị một số trong C.

Và chúng ta có thể tạo hàm kiểm tra số nguyên trong C như sau:

#include <math.h>

int check_real_integer_number(float n){
//flag = 1 => số nguyên
//flag = 0 => số thực

int flag = 1;
if (ceil(n) != floor(n)) flag = 0;
return flag;
}

Chúng ta có thể gọi hàm này và sử dụng trong chương trình nhập n kiểm tra n có phải số nguyên không trong C như sau:

#include <stdio.h>
#include <math.h>

int check_real_integer_number(float n){
//flag = 1 => là số nguyên
//flag = 0 => không phải là số nguyên

int flag = 1;
if (ceil(n) != floor(n)) flag = 0;
return flag;
}
int main(void){
float n;

printf("Nhap so= ");
scanf("%f",&n);

int check = check_real_integer_number(n);

if( check == 1 ) printf("So vua nhap la so nguyen");
else if( check == 0 ) printf("So vua khong phai la so nguyen");

return 0;
}

Lưu ý là số nhập từ bàn phím phải được lấy dưới dạng số float %f hoặc là double %lf chứ không thể lấy dưới dạng int %d, vì nếu ở dạng số nguyên int thì số nhập vào luôn được máy tính lưu lại dưới dạng số nguyên rồi, và chúng ta cũng không cần phải kiểm tra nó nữa.

Màn hình nhập liệu và kết quả kiểm tra số thực số nguyên sẽ như sau:

Nhap so= 6
So vua nhap la so nguyen

Nhap so= 6.1
So vua nhap la so thuc

Nhap so= 0
So vua nhap la so nguyen

Liệt kê và tính tổng tất cả các số nguyên

Sử dụng phương pháp ở trên, chúng ta có thể liệt kê và tính tổng tất cả các số nguyên bằng C.

Và dưới đây là ví dụ về chương trình liệt kê và tính tổng tất cả các số nguyên trong C:

#include <stdio.h>
#include <math.h>

/*Định nghĩa macro SIZE_OF_ARRAY để lấy độ dài (số phần tử) trong mảng chỉ định*/
#define SIZE_OF_ARRAY(array) (sizeof(array)/sizeof(array[0]))

int check_real_integer_number(float n){
//flag = 1 => là số nguyên
//flag = 0 => không phải là số nguyên

int flag = 1;
if (ceil(n) != floor(n)) flag = 0;
return flag;
}

int main(void){
float array[] = {5, 4.1, 7.2, 2, 8.9, 7, 3};
int length= SIZE_OF_ARRAY(array);

int i = 0, check,total=0;
for(i = 0; i < length; i++){
check = check_real_integer_number(array[i]);
if( check == 1 ) {
printf("%d ", (int)array[i]);
total+=array[i];
}
}
printf("\nTong cac so nguyen trong mang:%d ",total);
return 0;
}

Kết quả:

5 2 7 3 
Tong cac so nguyen trong mang:17

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách kiểm tra số nguyên trong C cũng như cách liệt kê và tính tổng tất cả các số nguyên bằng C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

URL Link

https://laptrinhcanban.com/c/lap-trinh-c-co-ban/so-trong-c/kiem-tra-so-nguyen-so-thuc-trong-c/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.