假设每一个学生包括学号、姓名与年龄这三个信息,从键盘上输入学生的个数和每个学生的信息。将这些信息用链表来组织,每个节点代表一个学生。要求在主函数里输入学生个数,写一个函数输入学生的信息(输入时要求按年龄自动排序),写一个函数来输出学生的信息。写一个函数来求平均年龄并输出。
#include<stdio.h>
#include<stdlib.h>
struct student
{
int num;
char name[10];
int age;
struct student *next;
}Mystu;
int n;
struct student *input()
{
struct student *head=NULL,*p=NULL,*q=NULL;
for(int i=0;i<n;i++)
{
//从键盘上输入学生信息
q=p;//保存前一个元素的地址
p=(struct student *)malloc(sizeof(struct student));
printf("第%d个学生的信息(包括学号、名字、年龄):\n",i+1);
scanf("%d %s %d",&p->num,p->name,&p->age);
p->next=NULL;
if(head==NULL)
head=p;
else
q->next=p;
}
return head;
}
struct student *average()
{
double agev=0.0;
struct student *head=NULL,*p=NULL;
p=head;
while(p!=NULL)
{
agev=agev+p->age; //求总年龄
p=p->next;
}
printf("平均年龄=%2.2f\n",agev/n); //求出平均年龄
return head;
}
void output(struct student *head)
{
struct student *p=NULL;
p=head;
printf("No. name age\n");
while(p!=NULL)
{
printf("%-6d %s %4d\n",p->num,p->name,p->age);
p=p->next;
}
}
void main()
{
struct student *head=NULL;
printf("please input student number(n):\n");
scanf("%d",&n);
head=input();
head=average();
output(head);
}
该如何该才能符合题目要求?请各位帮帮忙。急需答案
#include <stdio.h>
#include <stdlib.h>
//#include <string.h>
//#include <math.h>
struct student
{
int num;
char name[10];
int age;
struct student *next;
} Mystu;
int n;
struct student *input()
{
int i;
struct student *head=NULL,*p=NULL,*q=NULL;
for(i=0;i<n;i++)
{
//从键盘上输入学生信息
q=p;//保存前一个元素的地址
p=(struct student *)malloc(sizeof(struct student));
printf("第%d个学生的信息(包括学号、名字、年龄):\n",i+1);
scanf("%d %s %d",&p->num,p->name,&p->age);
p->next=NULL;
if(head==NULL)
head=p;
else
q->next=p;
}
return head;
}
void average(struct student *head)
{
double agev=0.0;
struct student *p=NULL;
p=head;
while(p!=NULL)
{
agev=agev+p->age; //求总年龄
p=p->next;
}
printf("平均年龄=%2.2f\n",agev/n); //求出平均年龄
}
void output(struct student *head)
{
struct student *p=NULL;
p=head;
printf("No. name age\n");
while(p!=NULL)
{
printf("%-6d %s %4d\n",p->num,p->name,p->age);
p=p->next;
}
}
void Destroy(struct student **head)
{
struct student *tmp;
tmp = *head;
while(*head)
{
tmp = (*head)->next;
printf("destroy:%p \n", *head);
free(*head);
*head=tmp;
}
}
int main()
{
struct student *head=NULL;
printf("please input student number(n):\n");
scanf("%d",&n);
head=input();
printf("main:%p \n", head);
average(head);
output(head);
Destroy(&head);
return 0;
}
修改了一下
void average(struct student *head)
和主函数中的调用
另外增加了动态内存的释放 ,不释放会造成内存泄露的!!
在c语言程序中 ,用链表形式输入和输出学生信息,求年龄平均值
{ \/\/从键盘上输入学生信息 q=p;\/\/保存前一个元素的地址 p=(struct student *)malloc(sizeof(struct student));printf("第%d个学生的信息(包括学号、名字、年龄):\\n",i+1);scanf("%d %s %d",&p->num,p->name,&p->age);p->next=NULL;if(head==NULL)head=p;else q->next=p;} ...
c语言!!!程序设计:建立一个学生信息链表,包括学号,姓名,成绩.(实现添...
\/*用c语言链表编写一个学生信息系统程序,要求输出学生的学号,姓名,性别,学号,姓名,成绩(实现添加,删除,查询,排序,平均)*\/ include <stdio.h> include <iostream> include <string.h> include <stdlib.h> using namespace std;const int n=5;\/ nodeEntry : 节点数据类型 nodeADT : 节...
用C语言结构体指针编程序实现输入十个学生的学号,期中和期末成绩,计 ...
void Search(int); \/\/在当前链表查找指定记录并输出 float Average(); \/\/计算平均成绩
C语言编程,输入一个学生的姓名、学号、英语、数学、计算机成绩,输出学生...
Please input student's Computer score:89.5 输出:Name:Lihua NUmber:123456789 Score:87.00
用c语言链表编写一个学生信息系统程序,要求输出学生的学号,姓名,性别...
\/ 用c语言链表编写一个学生信息系统程序,要求输出学生的学号,姓名,性别,还有三门课比如语,数,外的成绩 \/ \/\/FileName: stuinfo.c include <stdio.h> include <stdlib.h> include <string.h> define SERIALLEN 20 define COURSENUM 3 typedef struct { char course[SERIALLEN];float score;}...
编写一个c语言程序,实现录入学生学号和姓名信息的功能
1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。5、然后在...
c语言编写学生信息管理系统
printf ("请输入学生的年龄:"); scanf ("%d",&p0->age); printf ("请输入学生的地址:"); scanf ("%s",p0->address); printf ("请输入学生的电话:"); scanf ("%lf",&p0->tele_num); printf ("请输入学生的爱好:"); scanf ("%s",p0->aihao); insert (p0); printf ("该学生的信息为:\\...
用C语言写学生成绩管理系统基本功能:1、 输入一个班级的学生基本信息...
printf("请输入学生的年龄:");printf("请输入学生的宿舍号码:");printf("请输入学生的电话号码:");while(!feof(fp)){ p=(struct stud_node *)malloc(size);fscanf(fp,"%ld%c%c%d%ld%ld",&ID,&name,&sex,&age,&dormnumber,&phonenumber);p->ID=ID;strcpy(p->name,name);strcpy(p->...
学生信息管理系统C语言编程
学生信息管理系统C语言编程 一、学生信息管理系统1设计内容1、用户界面2、同学信息的插入3、同学信息的删除4、同学信息的查询5、同学信息的显示6、最终的同学信息写入到文件7、退出数据要求:同学信息包括:学号... 一、学生信息管理系统1 设计内容 1、用户界面2、同学信息的插入3、同学信息的删除4、同学信息的查询5...
学籍管理系统学生信息录入模块c语言程序
给个参考你:\/*编制一个学生成绩管理系统,每个学生信息包括:学号、姓名、C语言、高数和英语成绩。具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示...