Em vào thẳng vấn đề luôn nhé.Ở dưới là code của em 
Đề: Xuất ra thông tin sinh viên có điểm thấp nhất
=> Em chỉ làm được xuất ra điểm thấp nhất chứ không ra thông tin của Sinh Viên được. Các bác giúp em 1 tay với. phải làm như nào ạ
Code:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
//Prototype
struct sv
{
char ten[100];
char msv[10];
float diem;
};
struct node
{
sv Data;
struct node* pNext;
};
struct list
{
node* pHead;
node* pTail;
};
//Init
void init(list &l)
{
l.pHead=l.pTail=NULL;
}
//Get Node
node* Get_Node(sv s)
{
node *p=new node;
if(p==NULL)
return NULL;
else
{
p->Data=s;
p->pNext=NULL;
return p;
}
}
//Input SV
void Input_Sv(sv &s)
{
fflush(stdin);
printf("NAME: ");
gets(s.ten);
printf("ID: ");
gets(s.msv);
printf("POINT :");
float d;
scanf("%f",&d);
s.diem=d;
printf("\n\n");
}
//Output SV
void Output_Sv(sv s)
{
printf("%s\t%s\t%0.1f\n\n",s.ten,s.msv,s.diem);
}
//Add Tail
void Add_Tail(list &l,node *p)
{
if(l.pHead==NULL)
l.pHead=l.pTail=p;
else
{
l.pTail->pNext=p;
l.pTail=p;
}
}
//Add Head
void Add_Head(list &l,node *p)
{
if(l.pHead==NULL)
l.pHead=l.pTail=p;
else
{
p->pNext=l.pHead;
l.pHead=p;
}
}
//Input List
void Input_List(list &l,sv s,int n)
{
init(l);
for(int i=0;i<n;i++)
{
node *p=Get_Node(s);
Input_Sv(p->Data);
Add_Tail(l,p);
}
}
//Output List
void Output_List(list &l,sv s)
{
int i=1;
for(node *p=l.pHead;p!=NULL;p=p->pNext)
{
printf("Student %d:",i);
Output_Sv(p->Data);
i++;
}
}
//Min
int Find_Min(list &l)
{
printf("MIN:");
float min=l.pHead->Data.diem;
for(node *p=l.pHead->pNext;p!=NULL;p=p->pNext)
{
if(min>p->Data.diem)
{
min=p->Data.diem;
return min;
}
}
printf("%0.1f",min);
}
//MAIN
int main()
{
int n;
list l;
sv s;
printf("NODE = ");
scanf("%d",&n);
printf("\n\n");
Input_List(l,s,n);
Output_List(l,s);
Find_Min(l);
getch();
return 0;
}