01/10/2018, 00:28

Khai báo kiểu enum này có ý nghĩa gì?

Tại sao mh chép lại code này trong sách của thầy phạm văn ất vào cả turbo C lẫn dev-c++ nó đều báo lỗi vậy mọi người?

#include<stdio.h>

int main()
{
	enum{T0,T1,T2};
	enum day {cn,t2,t3,t4,t5,t6,t7} n1;
	enum day n2;
	int i,j=2000,k=T2;
	i=t7;
	n1=-1000;
	n2=j;
	printf("
 n1=%d, n2=%d, i=%d",n1,n2,i);
	printf("
 k=%d, T1=%d",k,T1);
	return 0;
}

Nó bão lỗi ở đoạn n1=-1000;
Trong giáo trình thầy viết biến enum có thể nhận bất kỳ giá trị nguyên nào mà. Ai giải thích dùm mh với. Thanks.

Lương Quang Mạnh viết 02:36 ngày 01/10/2018

Trông cũng lạ nhỉ? enum day có 7 phần tử thì n1n2 chỉ có thể nhận giá trị từ 0 đến 6 thôi chứ nhỉ?

Nguyễn Văn Công viết 02:35 ngày 01/10/2018

Mình trích nguyên văn nhé:" Biến enum thực chất là biết nguyên nó được cấp phát 2 byte bộ nhớ và có thể nhận một giá trị nguyên bất kỳ". Mình đã thay các giá trị từ 0-6 rồi nó vẫn báo lỗi ở chỗ n1 bạn ạ. Hay ông viết sai nhỉ. Mh tự đọc nên chẳng biết thế nào.

*grab popcorn* viết 02:37 ngày 01/10/2018

Mình chạy code C bình thường mà.
Nếu bạn compiler bằng C++ thì nó lỗi ko ép kiểu
Đơn giản chỉ cần ép kiểu của enum cho số nguyên là đc

Pham Van Hai viết 02:30 ngày 01/10/2018

printf("\n k=%d, T1=%d",k,t1);

Lỗi là đây t1 ở đâu ra vậy?

*grab popcorn* viết 02:41 ngày 01/10/2018

Chắc bạn ấy muốn test giá trị của Enum có T0 - T2 đó anh

Nguyễn Văn Công viết 02:34 ngày 01/10/2018

Sao mh vẫn ko thể chạy trên dev với turbo c 3.1 đc nhỉ. Bạn dùng chương trình gì vậy?

Nguyễn Văn Công viết 02:39 ngày 01/10/2018

Lỗi là đây t1 ở đâu ra vậy?

Cái đó là T1 a ơi. E viết nhầm

*grab popcorn* viết 02:38 ngày 01/10/2018

DevC++ 5.11 nha bạn

Nguyễn Văn Công viết 02:34 ngày 01/10/2018

Sao của mình cũng DEV 5.11 mà ko đc nhỉ.

*grab popcorn* viết 02:34 ngày 01/10/2018

Mình có nói là c++ thì nó đòi thêm ép kiểu
Xem code trên hình của mình là thấy.

Nguyễn Văn Công viết 02:29 ngày 01/10/2018

Nhưng mh cũng hiểu ý nghĩa của bài này rồi. Thanks bạn nha. Chắc do phần mềm thôi.

Nguyễn Văn Công viết 02:30 ngày 01/10/2018

vậy làm sao để chuyển C++ sang c đc bạn?

Phạm Minh Anh Hữu viết 02:37 ngày 01/10/2018

Đổi lại đuôi file là .c thay vì .cpp là được.

Pham Van Hai viết 02:33 ngày 01/10/2018

E nên sử dụng các compiler/IDE hiện đại update chuẩn mới. turbo rất cũ rồi và ko còn được hỗ trợ nữa.
Hiện tại diễn đàn rất nhiều người sử dụng codeblock để code C, bạn có thể tham khảo hướng dẫn dưới đây:

Công cụ lập trình C/C++ miễn phí

*grab popcorn* viết 02:42 ngày 01/10/2018

Lúc save có cái option save as type. Bạn chọn C là đc
Còn ko như anh anhhuu nói đó. Đổi đuôi cpp thành c rồi mở = devc là đc.

Nguyễn Văn Công viết 02:35 ngày 01/10/2018

Oh sorry mh chưa đọc code của bạn. Thanks you.

Lương Quang Mạnh viết 02:34 ngày 01/10/2018

Vậy à, cái này mình cũng không rõ lắm, vì cũng chẳng mấy khi động tới

Trần Quang Sơn viết 02:40 ngày 01/10/2018

Cho em hỏi, cái kiểu enum có ý nghĩa gì và cách dùng ạ?

rogp10 viết 02:30 ngày 01/10/2018

Dùng để định nghĩa (và gom) các hằng số có liên quan với nhau. Chi tiết thì nên đọc giáo trình.

Bài liên quan
0