| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1376 人关注过本帖
标题:如何用读取并利用链表里的数据
只看楼主 加入收藏
h729317115
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-12-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
如何用读取并利用链表里的数据
这是我看视频打的代码,但是链表没学过,但我想接着弄完,就是第三个功能输出平均分 如何接着我上面的代码输出?
#include <stdio.h>
#include <stdlib.h>
typedef  struct tagStudent
//typedef给你的基本类型起一个别名
{
    //匈牙利命名法
    char szName[10];  //姓名
    int  nStuNum;     //学号
     int  nScore1;     //成绩1
    int  nScore2;     //成绩2
    int  nScore3;     //成绩3


}Student;

typedef struct tagNode
{
   Student stu;             //学生信息 数据域
   struct tagNode *pNext;   //指向下一个学生 指针域
}Node;
//定义的链表头
Node *g_pHead=NULL;     
   
void InputStudent();
void PrintStudent();
void SaveStudent();
void PrintAverage();
   
void main()
{
    printf("==========================欢迎使用高校学生成绩管理系统==========================\n");
    while(1)
    {
        //\t表示制表符
        printf("\t====请选择功能列表====\n");
        printf("\t\t1.录入学生成绩\n");
        printf("\t\t2.打印学生成绩\n");
        printf("\t\t3.输出每个学生的平均分\n");
                printf("\t\t4.输出每门课的平均分\n");
        printf("\t\t5.按学生平均分降序输出学生信息\n");
        printf("\t\t6.统计不及格学生并输出其相应信息\n");
        printf("\t\t0.退出系统\n");
  
        int ch;
        //%c格式化去读取一个字符
        scanf("%d",&ch);
        switch (ch)
        {
        case 1:
                InputStudent();
                break;
        case 2:
                PrintStudent();
                break;
        case 3:
                PrintAverage();
                break;
        case 4:
                break;
        case 5:
                break;
        case 0:
                break;
        }



        
    }
}
//录入学生成绩
void InputStudent()
{
    printf("\n请输入学生信息:姓名 学号 成绩1 成绩2 成绩3");
    Node* p;   //当前节点
    p=g_pHead;

    while (g_pHead!=NULL && p->pNext!=NULL)
    {
        p =  p->pNext;

      }

    //定一个新节点
    Node *pNewNode =(Node*)malloc(sizeof(Node));
    pNewNode->pNext = NULL;
   
    if(g_pHead == NULL)
    {
       g_pHead = pNewNode;
       p = g_pHead;
    }
    else
    {
        p->pNext = pNewNode;
    }

    //输入新的学生数据
    //姓名 学号 成绩1 成绩2 成绩3
    scanf("%s %d %d %d %d",
        pNewNode->stu.szName,
        &pNewNode->stu.nStuNum,
        &pNewNode->stu.nScore1,
        &pNewNode->stu.nScore2,
        &pNewNode->stu.nScore3
        );

    printf("添加数据成功!\n");
}
//打印学生信息
void PrintStudent()
{
    printf("打印所有学生信息\n");
    Node *p;//当前节点
    p = g_pHead;

    while (p!=NULL)
    {
        printf("学号:%d\t姓名:%s\t成绩1:%d\t成绩2:%d\t成绩3:%d\n",
            p->stu.nStuNum,
            p->stu.szName,
            p->stu.nScore1,
            p->stu.nScore2,
            p->stu.nScore3
            );

        p = p->pNext;
    }
}
搜索更多相关主题的帖子: stu 成绩 Node 学生 printf 
2017-12-20 15:21
h729317115
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-12-20
收藏
得分:0 
大家帮我看看吧
2017-12-20 15:21
liaohs
Rank: 4
等 级:业余侠客
威 望:7
帖 子:61
专家分:292
注 册:2017-11-26
收藏
得分:20 
PrintStudent函数中都写了,看懂了自然会做。
2017-12-22 13:40
快速回复:如何用读取并利用链表里的数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016062 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved