实现一个将输入的学生成绩组织成单向链表的简单函数

 1 void input() {
 2     struct stud_node *q;
 3     do {
 4         q = (struct stud_node*)malloc(sizeof(struct stud_node));
 5         scanf("%d",&q->num);
 6         if ( q->num != 0){
 7             scanf("%s %d", q->name, &q->score);
 8             if ( head == NULL ) {
 9                 head = q;
10                 head->next = NULL;
11             }
12             if ( tail != NULL ) {  //为tail开辟结点
13                 tail->next = q;
14             }
15             tail = q;
16             tail->next = NULL;
17         }
18     } while ( q->num != 0);
19
20 }
1 struct stud_node {
2     int              num;      /*学号*/
3     char             name[20]; /*姓名*/
4     int              score;    /*成绩*/
5     struct stud_node *next;    /*指向下个结点的指针*/
6 };
7 struct stud_node *head, *tail;

单向链表的头尾指针保存在全局变量headtail中。

大概固定的公式:

struct stud_node *head, *tail, *q;  //头, 尾, 相当于用来控制的指针
q = (struct stud_node*)malloc(sizeof(struct stud_node));  //申请动态分配内存

令输入的元素用 q-> 来指向, 而后先判断head是否为空, 如果为空, 令head = q;

而后要做的就是让尾tail一直处于链表的尾部, 此处画图理解会比较好

总结来说建立链表的方法大概是这样, 死记这个大概的方法, 遇到不同的问题再见机更改就行了


原文地址:https://www.cnblogs.com/zhengxin909/p/12001326.html

时间: 2024-10-16 06:47:57

实现一个将输入的学生成绩组织成单向链表的简单函数的相关文章

52.从键盘上输入若干学生成绩(成绩在0~100之间),计算平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入

//1.建立一个for循环用于输入数据,设置退出条件 //2.算出平均成绩 #include<iostream> using namespace std; int main() { int Score,sum=0,k=0; int a[100]; float Average; cout<<"please input some students's score:"<<endl; for(int i=0;i<100;i++) { cin>&g

输入和学生成绩的输出

#include<stdio.h> /* 学生的结构的定义. 成员变量名称.卷号.受试者的结果. 两名学生从键盘读取信息. 最后,良好的背景输出谁在公告栏中承认比分淘汰. 假设同样的比分,在公告栏中一同显示出来. */ //定义一个结构体类型 struct Student { char name[20]; //名字 char idNum[20]; //学籍号 float score; }; void compare(struct Student stus[],int count); int m

团队博客(四):学生成绩管理系统测试计划

文档背景: 为了提高从事学生工作的老师的工作效率,我们开发了这个大学学籍管理系统. 这个系统能满足用户Login/Logout,管理员账户与普通账户,管理员可以添加,修改删除,普通账户只能查看.主要功能:能完成新学生的添加.修改.删除,能按学生成绩求和,排名,列出不及格学生的名单等.操作简单.界面友好:确保信息的准确性,动态性,安全性.大学学籍管理系统是基于J2EE的技术,采用B/S结构,适于分布式多客户作业,客户端的要求也很低. 测试范围: 测试阶段包括单元测试,系统测试,性能测试,验收测试及

学生成绩的排名

package com.paixu; public class Student { String name; int score; public Student(String name, int score) { super(); this.name = name; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name;

C语言:创建动态单向链表,创建完成后,输出每一个节点的数据信息。

// //  main.c //  dynamic_link_list // //  Created by ma c on 15/8/5. //  Copyright (c) 2015年 bjsxt. All rights reserved. //  要求:写一个函数建立有3名学生数据的动态单向链表,并输出链表中每个结点的所有内容. /* 建立动态链表的思想: 1.开辟一个新结点,并使p1,p2指向它: 2.读入一个学生数据给p1所指的结点: 3.head = NULL,n = 0; 4.判断读

【C语言】用指针函数完成:有a个学生,每个学生有b门课。要求在输入学生序号后输出该学生成绩

//用指针函数完成:有a个学生,每个学生有b门课.要求在输入学生序号后输出该学生成绩 #include <stdio.h> float * search(float (* pointer )[4],int n) //形参pointer是一个数组指针 { float *pt; pt=*(pointer+n); return pt; } int main() { float score[][4]={{60,70,80,90},{56,57,78,85},{75,45,36,85}}; float

一个简易的学生成绩管理系统

简易成绩管理系统:    分2大块功能    1.实现一个菜单包括        A注册 注册一个管理员账户        B登录 通过注册的账户登录系统        C退出 退出整个程序    2.实现一个菜单        A新增学生分数信息 循环新增学生的姓名与分数信息        B修改学生分数信息 通过学生的姓名修改一个学生的分数        C删除学生分数信息 通过学生的姓名删除一个学生的姓名与分数        D查询学生信息 查询功能看第3小点        E返回上级菜单

上个月C++课程设计做的一个《学生成绩管理和选课系统》

分享下代码.冗余的代码比较多.比较重要的部分有注释. 采用文件方式保存数据,需要先在D盘建立三个“表”,即是txt文件,分别是student.txt,teacher.txt,course.txt. 其中teacher.txt,中要预先存入一组数据,如下 教师id 姓名 密码 1 大明 123123 然后编译运行程序,选择教师登录,用上面的id和密码登录就可以进行学生的增删改查操作了. 下面贴代码,功能就看main()函数的菜单吧,懒得详述了... #include <iostream> #in

Problem X: C语言习题 学生成绩输入和输出

Problem X: C语言习题 学生成绩输入和输出 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 4722  Solved: 2284[Submit][Status][Web Board] Description 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据,每个学生的数据包括num(学号).name(姓名).score[3](3门课的成绩).编写一个函数input,用来输入5个学生的数据. Input 5个学生的学号