编写程序STUDENT *Create(STUDENT studs[],int n)。 STUDENT是一个结构类型,包含姓名、成绩和指针域。
2017-08-04 19:43
337 查看
编写程序STUDENT *Create(STUDENT studs[],int n)。
STUDENT是一个结构类型,包含姓名、成绩和指针域。
studs数组中存储了n个STUDENT记录。
create函数的功能是根据studs数组建立一个链表,
链表中结点按成绩降序排列,函数返回链表头指针。
#include <stdio.h>
#include <stdlib.h>
struct student //创建学生结构体
{
char name[20];
int score;
struct student *next;
};
typedef struct student STUDENT;
STUDENT *Create(STUDENT *studs, int n)
{
int i = 0;
int j = 0;
STUDENT t;
STUDENT *head;
for (i = 0; i < n - 1; i++) //冒泡排序
{
for (j = 0; j < n - 1 - i; j++)
{
if (studs[j].score < studs[j + 1].score)
{
t = studs[j];
studs[j] = studs[j + 1];
studs[j + 1] = t;
}
}
}
head = &studs[0];
for (i = 0; i < n - 1; i++) //链接成链表
{
studs[i].next = &studs[i + 1];
}
studs[i].next = NULL;
return head;
}
void Display(STUDENT *head) //打印链表节点数据
{
STUDENT *p = head;
while (p != NULL)
{
printf ("%s %d", p -> name, p -> score);
printf ("\n");
p = p -> next;
}
}
int main()
{
STUDENT studs[40];
int n = 0;
int i = 0;
STUDENT *head;
printf ("How many students : ");
scanf ("%d", &n);
printf ("Please input the name and scores : \n");
for (i = 0; i < n; i++)
{
getchar();
scanf ("%s%d", studs[i].name, &studs[i].score); //接收学生的数据
}
head = Create(studs, n);
printf ("Large to small:\n"); //打印结果
Display(head);
return 0;
}
STUDENT是一个结构类型,包含姓名、成绩和指针域。
studs数组中存储了n个STUDENT记录。
create函数的功能是根据studs数组建立一个链表,
链表中结点按成绩降序排列,函数返回链表头指针。
#include <stdio.h>
#include <stdlib.h>
struct student //创建学生结构体
{
char name[20];
int score;
struct student *next;
};
typedef struct student STUDENT;
STUDENT *Create(STUDENT *studs, int n)
{
int i = 0;
int j = 0;
STUDENT t;
STUDENT *head;
for (i = 0; i < n - 1; i++) //冒泡排序
{
for (j = 0; j < n - 1 - i; j++)
{
if (studs[j].score < studs[j + 1].score)
{
t = studs[j];
studs[j] = studs[j + 1];
studs[j + 1] = t;
}
}
}
head = &studs[0];
for (i = 0; i < n - 1; i++) //链接成链表
{
studs[i].next = &studs[i + 1];
}
studs[i].next = NULL;
return head;
}
void Display(STUDENT *head) //打印链表节点数据
{
STUDENT *p = head;
while (p != NULL)
{
printf ("%s %d", p -> name, p -> score);
printf ("\n");
p = p -> next;
}
}
int main()
{
STUDENT studs[40];
int n = 0;
int i = 0;
STUDENT *head;
printf ("How many students : ");
scanf ("%d", &n);
printf ("Please input the name and scores : \n");
for (i = 0; i < n; i++)
{
getchar();
scanf ("%s%d", studs[i].name, &studs[i].score); //接收学生的数据
}
head = Create(studs, n);
printf ("Large to small:\n"); //打印结果
Display(head);
return 0;
}
相关文章推荐
- 编写程序STUDENT *Create(STUDENT studs[],int n)。STUDENT是一个结构类型,包含姓名、成绩和指针域。studs数组中存储了n个STUDENT记录。create函
- 编写程序STUDENT *Create(STUDENT studs[],int n)
- 编写程序STUDENT *Create(STUDENT studs[],int n)。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中
- 编写一个程序,输出学生已有的学号姓名成绩等数据并计算总人数和平均成绩
- 编写一个Student类:该类拥有属性:校名,学号,性别,出生日期。方法包涵设置姓名和成绩
- 创建一个学生类(Student),包括学号成绩,编程输入和显示学生的信息。建立一个人类(Person),包含姓名、性别和年龄,并作为学生类的基类
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 编写一个程序,已有若干学生的数据,包括学号,姓名,成绩,要求输出这些学生的数据并计算出学生人数和平均成绩
- 编写一个Java应用程序,该程序包括3个类:定义一个学生类,Student有姓名,学号,选学的课程列表 ,定义一个课程类:课程名称,课程分数
- 编写程序定义一个vector 对象,其每个元素都是指向string 类型的指针,读 取该vector 对象,输出每个string 的内容及其相应的长度。
- [4.21]编写一个程序,已有若干个学生的数据,包括学号、姓名、成绩、要求输出这些学生的数据并计算出学生人数和平均成绩(要求将学生人数和总成绩用静态数据成员表示)。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
- 编写一个程序以确定分别由signed及unsigned限定的char、short、int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现
- 创建一个学生类(Student),包括学号和成绩,编程输入和显示学生的信息,建立一个人类(Person),包含姓名、性别和年龄,并作为学生类的基类
- 练习 2-1 编写一个程序以确定分别由 signed 及 unsigned 限定的 char、short、 int 与 long 类型变量的取值范围。
- 编写程序:建立一个学生数据链表,每个节点的信息包括如下内容:学号,姓名,性别年龄专业。对链表做如下处理。输入一个学号(专业),如果链表中的节点包含此学号(专业),则删去该结点。
- lesson 9:编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 练习2-1 编写一个程序一确定分别由signed及unsigned限定的char,short,int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。通过直接计算来确定浮点类型的取值范围是一项难度很大的任务。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。