{ char sid[15]; char name[15]; TP score; struct students *next; }student;
student *input()
{ student *head,*p1,*p2; int n=0; char ch; clrscr(); head=(student *)malloc(F);head->next=NULL; do { n++; printf(\ \\n\\n\ printf(\ \ p1=(student *)malloc(F);p1->next=NULL; scanf(\ printf(\ \ scanf(\ printf(\ \ scanf(\ p1->score.all=p1->score.english+p1->score.math+p1->score.c_language; if(n==1) { head->next=p1;p2=p1; } else { p2->next=p1; p2=p1; } printf(\ \ ch=getch();
}while(ch=='y'||ch=='Y'); return head; }
void average1(student *head) { student *p; int j; clrscr(); p=head->next; while(p) { j=p->score.all/3; printf(\ %s\\taverage: %d\ p=p->next; } printf(\ getch(); }
31
void average2(student *head) { student *p;int n=0,temp1=0,temp2=0,temp3=0; p=head->next; while(p) { temp1+=p->score.english; temp2+=p->score.math; temp3+=p->score.c_language; p=p->next;n++; } printf(\english is : %d\\naverage math is : %d\\t\}
student *sort(student *head)
{ student *head1,*p,*q,*r; int temp1=0,temp2=0,temp3=0,temp4; head1=head; for(p=head1->next;p->next!=NULL;p=p->next) { r=p; for(q=p->next;q;q=q->next) if(q->score.all>r->score.all) r=q; if(r!=p) { strcpy(s,p->sid);strcpy(n,p->name); temp1=p->score.english; temp2=p->score.math; temp3=p->score.c_language; temp4=p->score.all; strcpy(p->sid,r->sid);strcpy(p->name,r->name); p->score.english=r->score.english; p->score.math=r->score.math; p->score.c_language=r->score.c_language; p->score.all=r->score.all; strcpy(r->sid,s);strcpy(r->name,n); r->score.english=temp1; r->score.math=temp2; r->score.c_language=temp3; r->score.all=temp4; } } return head1; }
void output(student *head) { student *head2,*p;int i=1; clrscr();
32
is : %d\\naverage char s[15],n[15]; c_language
head2=sort(head); for(p=head2->next;p!=NULL;p=p->next)
printf(\->sid,p->score.english,p->score.math,p->score.c_language,p->score.all/3,i++); average2(head);
printf(\ getch(); }
void main()
{ student *head,*p1,*p2; int i=0,j=1; head=input(); do { clrscr(); printf(\ average1.\\n\\n(2): average2.\\n\\n(3): sort.\\n\\n(4): output.\\n\\n\\n choose: \ scanf(\ switch(i) { case 1: average1(head); break; case 2: clrscr();average2(head); printf(\ case 3: clrscr();p1=sort(head); for(p2=p1->next;p2!=NULL;p2=p2->next)
printf(\ case 4: output(head); break; default: printf(\ } }while(i!=-1); } 4、
#include
#define F sizeof(worker) typedef struct work { char sid[15]; char name[15]; int money; struct work *next; }worker;
int min=0,max=0; char a[15],b[15]; worker *input()
{ worker *head,*p,*q;int n=0; char ch;
33
Please
head=(worker *)malloc(F); head->next=0; do { n++; p=(worker *)malloc(F); p->next=0; printf(\ \ printf(\ \ printf(\ \ printf(\ \ if(n==1) { head->next=p; q=p; max=p->money;strcpy(a,p->name); min=p->money;strcpy(b,p->name); } else { q->next=p; if(p->money>max) {max=p->money;strcpy(a,p->name);} if(p->money
void output() { clrscr(); printf(\ %d\\t\\tname is: %s\\n\\n\ printf(\ %d\\t\\tname is: %s\}
void main() { input(); output(); getch(); }
5、6、
#include\#define F sizeof(stu) #define NULL 0 typedef struct student { int sid; int average; struct student *next; }stu;stu *head;
34
stu *create() { stu *p1,*p2; int n=0; char ch; head=(stu *)malloc(F);head->next=NULL; do { n++; printf(\ \\n\\n\ printf(\ \ p1=(stu *)malloc(F);p1->next=NULL; scanf(\ printf(\ \ scanf(\ if(n==1) { head->next=p1;p2=p1; } else { p2->next=p1; p2=p1; } printf(\ \ ch=getch();
}while(ch=='y'||ch=='Y'); return head; }
stu *select(stu *head,int x) { stu *s; s=head->next; while(s) { if(s->sid==x) break; s=s->next; } return s; }
stu *insert(stu *head,int x,int y) { stu *p,*r,*q; clrscr(); p=head->next; r=(stu *)malloc(sizeof(stu)); r->sid=x; r->average=y;
35