#include<stdio.h>
#include<conio.h>
//typedef struct list -> Tại sao khai báo typedef mà trong khi không dùng ?
struct list
{
int a[100]; //tung phan tu cua mang va con bieu hien gia tri toi da cua mang
int n; //so phan tu thuc su ma mang chua
//n là gì, cái tên của biến này chẳng nói lên được gì.
//tại sao không khai báo cái tên mang ý nghĩa 1 chút
// int soLuongPhanTu ?
};
//int timvitri(list l, int x) Truyền bằng trị là rất poor performance
//nếu list có 100 item thì nó phải tạo 1 copy cho 100 item này mỗi
//lần gọi hàm này à ?
//Dùng const reference
int timvitri(const list& l,int x)
{
//duyet toan bo danh sach tu trai sang phai
for(int i=0;i<l.n;i++)
{
//neu gap x thi tra ve vi tri lien
if(l.a[i]==x)
return i;
//nguoc lai se tra ve -1
//Chỗ này logic sai, nếu không gặp lần đầu thì sẽ thoát luôn à.
//Cơ hội nào để nó tìm trong những thằng còn lại ?
//else
//return -1;
}
return -1;
}
//Tập dùng int main(), void main() đã out of standared for a long time ago.
int main()
{
//clrscr(); Clear gì ở đây ?
list l;
int gt;
int kq;
//printf("Nhap danh sach:"); Nhập danh sách gì, n là gì ?
printf("Nhap so phan tu 's danh sach.\n"); //Số phần tử cho nhập hồi nào mà biểu không trash
for(int x = 0; x < l.n; ++x){
}
printf("\nNhap gia tri can tim:");
kq = timvitri(l,gt);
if(kq == -1)
printf("ko co gia tri trong danh sach"); else
printf("Vay vi tri cua phan tu do la:%d",kq
); //getch();
return 0;
}