Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- struct sinhvien{
- char ten[50];
- char msv[50];
- char mon[50];
- float diem;
- };
- struct node
- {
- sinhvien sv;
- node *pnext;
- };
- struct list
- {
- node *phead;
- node *ptail;
- };
- void nhapsv(sinhvien &n)
- {
- printf("\nTen: "); fflush(stdin);
- gets(n.ten);
- printf("Ma sinh vien: "); fflush(stdin);
- gets(n.msv);
- printf("Ten mon : ");fflush(stdin);
- gets(n.mon);
- printf("Diem : "); fflush(stdin);
- scanf("%f",&n.diem);
- }
- void xuatsv(sinhvien n)
- {
- printf("\nTen: ");puts(n.ten);
- printf("Ma sinh vien: ");puts(n.msv);
- printf("Ten mon: ");puts(n.mon);
- printf("Diem: %f",n.diem);printf("\n");
- }
- node* createnode(sinhvien n)
- {
- node* pnode;
- pnode = new node;
- if (pnode==NULL)
- return NULL;
- pnode->sv=n;
- pnode->pnext=NULL;
- return pnode;
- }
- void addhead(list &l,sinhvien n)
- {
- node *pnode;
- pnode=createnode(n);
- if (l.phead==NULL)
- {
- l.phead=l.ptail=pnode;
- }
- else
- {
- pnode->pnext=l.phead;
- l.phead=pnode;
- }
- }
- void inds(list l)
- {
- node *pnode;
- pnode=l.phead;
- while (pnode!=NULL)
- {
- xuatsv(pnode->sv);
- printf("\n");
- pnode=pnode->pnext;
- }
- }
- float max(list l)
- {
- node *pnode;
- float max;
- pnode=l.phead;
- max=pnode->sv.diem;
- while (pnode!=NULL)
- {
- if (max<pnode->sv.diem)
- max=pnode->sv.diem;
- pnode=pnode->pnext;
- }
- return max;
- }
- float min(list l)
- {
- node *pnode;
- float min;
- pnode=l.phead;
- min=pnode->sv.diem;
- while (pnode!=NULL)
- {
- if (min>pnode->sv.diem)
- min=pnode->sv.diem;
- pnode=pnode->pnext;
- }
- return min;
- }
- int main()
- {
- sinhvien sv[100];
- list l;
- l.phead=l.ptail=NULL;
- int n;
- printf("nhap so sv: ");scanf("%d",&n);
- for (int i=0;i<n;i++)
- {
- printf("\nSinh vien %d",i+1);printf(":\n");
- nhapsv(sv[i]);
- addhead(l,sv[i]);
- }
- inds(l);
- printf("Max: %f,",max(l));
- printf("\nMin: %f",min(l));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement