紧急求助,为什么只能输出一组数据?

/*Q4609.(10分)建立学生成绩管理系统,对学生以下信息: 学号、名字、成绩(语文、数学、外语) 进行管理。要
求利用结构体变量记录每名学生的学号、名字、成绩(语文、数学、外语),并建立单向链表来存放学生的信息。
功能实现要求如下:
(1)写函数Append ()实现使用单链表来添加学生的信息。√
(2)写函数DisLink()输出所有学生的信息。 √
(3)写函数Sort()对学生成绩进行排序。
(4)写DeleteMemory()函数释放链表所占内存空间 √
其中结构体类型定义如下:
struct stu
{
char ID[12];//学号
char name[20];//姓名
int c1;//语文成绩
int c2;//数学成绩
int c3;//英语成绩
struct stu * next;
}
测试用例如下:
1 增加数据
2 退出
选择:1
请输入学号:001
请输入名字:张三
请依次输入语文,数学外语成绩:88 89 90
1 增加数据
2 退出
选择:1
请输入学号:0*/
#include
#include
struct stu

{

char ID[12];//学号 
char name[20];//姓名 
int c1;//语文成绩 
int c2;//数学成绩 
int c3;//英语成绩 
struct stu * next; 

};

struct stu*Append()
{

struct stu*pHead=NULL,*pNew=NULL,*pTail=NULL;
pNew=(struct stu*)malloc(sizeof(struct stu));//给一个stu分配空间! 
int i=0;
int a;
printf("1 增加数据\n");
printf("2 退出\n");
printf("选择");
scanf("%d",&a);

for(i=0;i<100;i++)
{
    if(a==1) 
    {   
    printf("请输入学号:");
    scanf("%s",&pNew->ID);
    printf("请输入名字:");
    scanf("%s",&pNew->name);
    printf("请依次输入语文,数学,外语成绩:");
    scanf("%d%d%d",&pNew->c1,&pNew->c2,&pNew->c3);
    if(pHead==NULL) 
        pHead=pNew;
    else
        pTail->next=pNew;
    pTail=pNew;
    pNew->next=NULL;
    printf("1 增加数据\n");
    printf("2 退出\n");
    printf("选择");
    scanf("%d",&a); 
    getchar();           //吞掉回车,不然的话回车会进入gets.gets直接结束 
    }
    else break; 
 } 
return pHead;       

}

void DisLink(struct stu *pHead)

{

struct stu*p=pHead;
int n=1;
printf("序号\t学号\t名字 \t语文\t数学\t外语\t总分\n");
while(p!=NULL)
{
    int sum=p->c1+p->c2+p->c3;
    printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n",n,p->ID,p->name,p->c1,p->c2,p->c3,sum);
    p=p->next;
    n++;
}

}

void Sort(struct stu*pHead)
{

int n=0;
struct stu *p,*q,*t;
p=pHead;
while(p!=NULL)
{
    p->next=q;
    if((p->c1+p->c2+p->c3)>(q->c1+q->c2+q->c3))
    {
        t=p,p=q,q=p;
    }
    p=p->next;
}
printf("排序后\n");
printf("序号\t学号\t名字 \t语文\t数学\t外语\t总分\n");
while(p!=NULL)
{

    printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n",n,p->ID,p->name,p->c1,p->c2,p->c3,p->c1+p->c2+p->c3);
    p=p->next;
    n++;
}   

}
void DeleteMemory(struct stu* pHead)

{

struct stu *p;
while (NULL != pHead)
{
    p = pHead;
    pHead = pHead->next;
    free(p);  // 下一个节点        free(Pointer);
}

}
int main()
{

struct stu *p;
p=Append();
DisLink(p);
Sort(p);
DeleteMemory(p);
return 0;

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

0
紧急求助:Dev的xtraGrid控件的非绑定字段显示问题
1
各位大神帮帮忙,这段代码中为什么求总分、平均分和排序会出现错误的(非常紧急)
2
倒计时交通灯。。。。。
0
紧急求助大佬!!!!!?sqlserver2012数据库文件的没有读取权限,用winrar没法压缩
0
IDEA scala程序代码如何调用python matplotlib程序啊。。。想要执行scala代码直接出来柱状图。
0
我现在一个程序是siebel的输入格式转成json,但是遍历时紧急联系人个电话这个集合只输出一个其他的不出来
2
紧急提问,为什么我的Dev c++允许使用变量作为数组长度,这种现象正常么?新标准?
2
运行tensorflow时出现tensorflow.python.framework.errors_impl.InternalError: Blas GEMM launch failed这个错误
8
关于安卓开发的来自计算机学生的非技术问题
1
紧急求助,java访问串口出现项目崩溃问题,求大神指导
4
java 多次嵌套数据,如何遍历获取到最内层的数据?
0
在进行事件的发布和订阅时出现了问题,不知如何解决?
3
紧急求助!用ssm做项目,intellij idea报了一个很奇怪的错
4
紧急求助 ! intellij idea 卡到影响电脑运行
2
紧急求助!!ubuntu16.04 caffe make clean报错!!
5
紧急求助! 请问为什么我的<bean id="dataSource">注入失败?
2
紧急求助,为什么我的intellij idea在pom.xml里导入的依赖没有被加载进来?
1
求助!在Android Studio 中跑程序最后 虚拟机界面总是出现Unfortunately,xxx has stopped
3
紧急求助! 我用springboot和springcloud做练习(restTemplate),两个一样的方法为什么会一个成功,一个报错?
2
紧急求助!为什么在html里用<script>导入文件,总是提示找不到路径或者资源?