有10个学生,每个学生的数据包括学号、姓名和1门课成绩,编写如下函数: (1)根据学生的信息建立链表; (2)输出链表; (3)输入一个学生的学号,查找链表中是否有该学生; (4)在第i
来源:互联网 发布:matlab两个数组相加 编辑:程序博客网 时间:2024/05/16 08:32
1、 有10个学生,每个学生的数据包括学号、姓名和1门课成绩,编写如下函数:
(1) 根据学生的信息建立链表;
(2) 输出链表;
(3) 输入一个学生的学号,查找链表中是否有该学生;
(4) 在第i个学生前插入一个学生信息;
(5) 删除链表中第i个学生。
#include<stdio.h>
#include<stdlib.h>
#define N 10
typedef struct Student{
int num;
char name[20];
float score;
}S;
typedef struct Node{
S date;
struct Node *next;
}Node,*LinkList;
LinkList createlist(int n){
int i;
LinkList head,pre,p;
head=pre=(LinkList)malloc(sizeof(Node));
for(i=0;i<n;i++){
p=(LinkList)malloc(sizeof(Node));
scanf("%d%s%f",&(p->date.num),p->date.name,&(p->date.score));
pre->next=p;
pre=p;
}
pre->next=NULL;
return head;
}//输入
void output(LinkList head){
LinkList p;
p=head->next;
while(p!=NULL){
printf("%5d%10s%5.1f\n",p->date.num,p->date.name,p->date.score);
p=p->next;
}
printf("\n");
}//输出
void search(LinkList head,int n){
LinkList p;
p=head->next;
while(p!=NULL)
if(p->date.num==n)
break;
else
p=p->next;
if(p==NULL)
printf("表中无学号为%d的学生。\n",n);
else
{
printf("满足条件的同学的信息如下:\n");
printf("%8d%10s%.1f",p->date.num,p->date.name,p->date.score);
}
printf("\n");
}//查找
LinkList insert_node(LinkList head,int i,S st){
int j;
LinkList p,s;
p=head; j=0;
while(p!=NULL&&j<i){
j++; p=p->next;
}
if(!p||j>i){
printf("传递的参数非法\n");
return NULL;
}
s=(LinkList)malloc(sizeof(Node));
s->date=st;
s->next=p->next;
p->next=s;
return 0;
} //插入
LinkList delete_node(LinkList head,int i){
int j;
LinkList p,q;
p=head; j=1;
while(p->next!=NULL&&j<i){
j++; p=p->next;
}
if(!p->next||j>i){
printf("传递的数据非法\n");
return NULL;
}
q=p->next; p->next=q->next;
free(q);
return head;
}//删除
int main(){
int i,n,a,b;
S stu;
LinkList head;
printf("输入学生个数:\n");
scanf("%d",&n);
head=createlist(n);
output(head);
printf("输入一个学生的学号:\n");
scanf("%d",&a);
search(head,a);
printf("插入一个学生;\n");
scanf("%d%s%f",&stu.num,stu.name,&stu.score);
printf("输入插入位置:\n");
scanf("%d",&i);
insert_node(head,i,stu);
printf("删除第%d个学生;\n",i);
delete_node(head,i);
output(head);
return 0;
}
- 有10个学生,每个学生的数据包括学号、姓名和1门课成绩,编写如下函数: (1)根据学生的信息建立链表; (2)输出链表; (3)输入一个学生的学号,查找链表中是否有该学生; (4)在第i
- 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,编写如下函数: (1)输入10个学生 的基本信息(input); (2)求出每个学生的平均分(average); (3)求出平均分
- 34. 有4个学生,每个学生有5门课程的成绩,输入任意学号,输出该学生的全部成绩(完成fun函数)。
- 有5个学生每个学生有3门课程的成绩,从键盘输入学生数据(包括学号,姓名,3门成绩)。
- 输入m个学生,每个学生有4门课,在主调函数中输入学生的相关信息,编写三个函数: (1)求第一门课的平均分; (2)找出有两门课以上不及格的学生,并输出他们的学号和全部成绩,要求用指针函数实现:fl
- 有10个学生,每个学生的数据包括学号,姓名,3门课的成绩。对其进行处理
- (c++)现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。 编写一个函数input,用来输入一个学生的数据记录。 编写一个函数print,打印一个学生的数据记录。 在主函数调用这两个函数,
- (c++)有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
- 有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息
- 有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息
- 一个班有n个学生,需要把每个学生的简单资料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。当输入一个姓名后程序就查找该班有无此学生,如果有,则输出他的姓名和学号,如果找不到
- 编写程序:建立一个学生数据链表,每个节点的信息包括如下内容:学号,姓名,性别年龄专业。对链表做如下处理。输入一个学号(专业),如果链表中的节点包含此学号(专业),则删去该结点。
- 编写一个函数print,打印一个学生的成绩数组,该书组中有五个学生的数据,每个学生的数据包括num(学号)、name(姓名)、score(3门课的成绩)、用主函数输入这些数据,用print函数输出这些
- 用文件存储学生数据,有5个学生,每个学生有3门课程成绩,从键盘输入数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中
- 【数据结构上机作业】输入一批学生的成绩(至少包括学生学号、姓名、课程成绩),用单链表存储,输出大于平均成绩的学生信息。
- 实验1 输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束
- 一班里有n个学生,把各学生的姓名及学号输入并储存,再输入一个学生姓名后查找,看是否有此学生。
- 【C++】建立一个学生信息链表,每个结点包括:学号、姓名、成绩。【原创技术】
- 利用Qt进行接口间通信
- Java移动框架篇--Spring mobile简单试用
- 电脑配置、硬件
- P8c语言作业
- Thymeleaf学习笔记
- 有10个学生,每个学生的数据包括学号、姓名和1门课成绩,编写如下函数: (1)根据学生的信息建立链表; (2)输出链表; (3)输入一个学生的学号,查找链表中是否有该学生; (4)在第i
- 【转】系统调用和库函数以及API
- Linux 命令大全
- 第一次作业
- shiro系列-认证&授权 demo
- 计算机视觉领域的重要会议和期刊转载
- Linux的安全和加密
- qt判断用户是否正在使用当前应用程序
- c++知识点----成员函数重载运算符