VC_yjt VC_yjt
不知何许人也
关注数: 48 粉丝数: 826 发帖数: 3,179 关注贴吧数: 31
在线等,help!每次输代码都要按那么多回车 在输入数据的时候,输入第一个学生数据,马上停止工作了 为什么啊 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> #include<conio.h> #define LEN sizeof(LinkList) typedef struct student {int score; char st_name[8],st_number[5]; } Student; typedef struct studentlist { Student stu; struct studentlist *next; } LinkList; LinkList *Input() {char number[5]; LinkList *p=NULL; printf(" no:"); scanf("%s",number); if(number[0]=='#')return p; p=(LinkList *)malloc(LEN); strcpy(p->stu.st_number,number); if (strlen(number)>5) p->stu.st_number[4]='\0'; printf(" name:"); scanf("%s",p->stu.st_name); printf("score:"); scanf("%d",p->stu.score); return p; } void Display(LinkList *h) {LinkList *p; printf("\tno\t\tname\t\tscore\n"); for(p=h->next;p!=NULL;p=p->next) printf("%8s %10s %10d\n",p->stu.st_number,p->stu.st_name,p->stu.score); } void DisplayOne(LinkList *p) {LinkList *s=p; printf("\tno\t\tname\t\tscore\n"); printf("%8s %10s %10d\n",p->stu.st_number,p->stu.st_name,p->stu.score); } LinkList *Creatlist() {LinkList *h,*p1,*p2; printf("\n\n请输入学生数据(以学号为#时结束输入):\n"); h=(LinkList *)malloc(LEN); p1=h; while(1) {p2=Input(); if(p2==NULL) break; p1->next=p2; p1=p2; } p1->next=NULL; Display (h); return h; } int Count(LinkList *h) { int i=0; LinkList *p; for(p=h->next;p!=NULL;p=p->next) i++; return(i); } LinkList *Delete (LinkList *h) {int n=0; char ch[5]; LinkList *p,*pt; while(n==0) { printf("请输入欲删除的学号:"); scanf("%s",ch); for(p=h->next;p!=NULL;p=p->next) { if(strcmp(p->stu.st_number,ch)==0) { n=1; break; } } if(n==0) printf("没有这个学号的学生\n"); } pt=h; while(1) { if(pt->next=p) break; else pt=p->next; } pt->next=p->next; printf("欲删除学生的数据为:\n"); DisplayOne(p); printf("该学号学生数据已删除!"); free(p); Display(h); return h; } void SearchAsNumber(LinkList *h) { char ch[5]; int n=0; LinkList *p; while(n==0) { printf("请输入欲查找学生的学号:"); scanf("%s",ch); for(p=h->next;p!=NULL;p=p->next) { if(strcmp(p->stu.st_number,ch)==0) { n=1; break; } } if(n==0) printf("没有这个学号的学生\n"); } printf("该学号学生数据为:\n"); DisplayOne(p); } void SortScore(LinkList *h) { LinkList *p1,*p2,*t; LinkList *p1h,*p2h; for(p1=h->next;p1->next!=NULL;p1=p1->next) for(p2=p1->next;p2!=NULL;p2=p2->next) if(p2->stu.score>p1->stu.score) {p1h=p2h=h; while(p1h!=p1) p1h=p1h->next;
首页 1 2 下一页