当前位置:首页 » 编程语言 » 单链表求平均值c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

单链表求平均值c语言

发布时间: 2023-08-31 07:21:57

① 输出平均值C程序怎么写

程序代码如下:

#include <stdio.h>

int main()

{

int a,b,c,average;

printf("a=");

scanf("%d",&a);

printf("b=");

scanf("%d",&b);

printf("c=");

scanf("%d",&c);

average=(a+b+c)/3;

printf("a,b,c3个数字的平均值:%d",average);

}

扩展基销敬资料

c语言特点

(1)简洁的语言

C语言包含有各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且多以小写字母为主,对许多不必要的部分进行了精简。

实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

(2)C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

(3)丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

(4)丰富的运算符

c语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰斗姿富。

参考资搏慎料来源:网络—C语言

② c语言!!!程序设计:建立一个学生信息链表,包括学号,姓名,成绩.(实现添加,删除,查询,排序,平均)

代码如下:

/*用c语言链表编写一个学生信息系统程序,要求输出学生的学号,姓名,性别,学号,姓名,成绩(实现添加,删除,查询,排序,平均)*/

#include <stdio.h>

#include <iostream>

#include <string.h>

#include <stdlib.h>

using namespace std;

const int n=5;

/*

* nodeEntry : 节点数据类型

* nodeADT : 节点结构

* linkADT : 链表结构

*/

typedef struct Student

{

int num;

char name[30];

char sex;

float score1;//语文

float score2;//数学

float score3;//英语

//struct Student *next;

}Student;

typedef struct linkCDT {

nodeADT head;

}*linkADT;

/*

* InitLink : 初始化链表

* CreateNode : 创建节点

* AppendLink : 添加数据

*/

nodeADT CreateNode(Student entry) {

nodeADT p=(nodeADT)malloc(sizeof*p);

p->entry=entry,p->next=0;

return p;

}

/*

SortLink : 排序链表

//按学号排序

void SortLinkID(linkADT link) {

nodeADT pHead,pRear,p,tp;

if (!link) return;

for (pHead=link->head,pRear=0;pHead;pHead=pHead->next) {

for (tp=pHead,p=pHead->next;p;tp=p,p=p->next)

if (pHead->entry.num>=p->entry.num)

tp->next=p->next,p->next=pHead,pHead=p,p=tp;

if (!pRear) link->head=pHead;

else pRear->next=pHead;

pRear=pHead;

}

//按英语成绩排序

void SortLinkEnglish(linkADT link) {

nodeADT pHead,pRear,p,tp;

if (!link) return;

for (pHead=link->head,pRear=0;pHead;pHead=pHead->next) {

for (tp=pHead,p=pHead->next;p;tp=p,p=p->next)

if (pHead->entry.score3>=p->entry.score3)

tp->next=p->next,p->next=pHead,pHead=p,p=tp;

if (!pRear) link->head=pHead;

else pRear->next=pHead;

pRear=pHead;

}

}

//按姓名的字典序进行排序

void SortLinkName(linkADT link) {

nodeADT pHead,pRear,p,tp;

if (!link) return;

for (pHead=link->head,pRear=0;pHead;pHead=pHead->next) {

for (tp=pHead,p=pHead->next;p;tp=p,p=p->next)

if (pHead->entry.name[0]>=p->entry.name[0])

tp->next=p->next,p->next=pHead,pHead=p,p=tp;

if (!pRear) link->head=pHead;

else pRear->next=pHead;

pRear=pHead;

}

}

//按姓名的长度进行排序

void SortLinkNameLength(linkADT link) {

nodeADT pHead,pRear,p,tp;

if (!link) return;

for (pHead=link->head,pRear=0;pHead;pHead=pHead->next) {

for (tp=pHead,p=pHead->next;p;tp=p,p=p->next)

if (strlen(pHead->entry.name)>=strlen(p->entry.name))

tp->next=p->next,p->next=pHead,pHead=p,p=tp;

if (!pRear) link->head=pHead;

else pRear->next=pHead;

pRear=pHead;

}

循环链表是与单链表一样

是一种链式的存储结构,所不同的是,循环链表的最后一个结点的指针是指向该循环链表的第一个结点或者表头结点,从而构成一个环形的链。

循环链表的运算与单链表的运算基本一致。所不同的有以下几点:

1、在建立一个循环链表时,必须使其最后一个结点的指针指向表头结点,而不是象单链表那样置为NULL。此种情况还使用于在最后一个结点后插入一个新的结点。

2、在判断是否到表尾时,是判断该结点链域的值是否是表头结点,当链域值等于表头指针时,说明已到表尾。而非象单链表那样判断链域值是否为NULL。

以上内容参考:网络-链表

③ 怎么用C语言求平均分

用C语言求平均值,可以由易到难分三种情况:

(1)键盘输入10个整数,求它们平均值。

#include

void main()

{ float a; //用于存平均值

int i,x,sum=0; //累加器sum清零

for(i=1;i<=10;i++)//循环10次

{

printf("number %d = ",i);//提示输入

scanf("%d",&x);

sum += x;

}

a=sum/10.0;//求平均值

printf("a=%f\n",a);//显示平均值

}

(2)键盘输入M(符号常量)个整数,求它们的平均值。

#include

#define M 10 //定义符号常量

void main()

{ float a; //用于存平均值

int i,x,sum=0; // 定义累加器sum;

for(i=1;i<=M;i++)//循环M次

{

printf("number %d = ",i);//提示输入

scanf("%d",&x);

sum += x;

}

a=(float)sum/M; //求平均值

printf("a=%f\n",a);//显示平均值

}

(3)键盘输入m(变量)个整数,求它们的平均值。M本身也由键盘输入。

#include

void main()

{

float b; //用于存平均值

int i,x,sum=0; //累加器sum清零

int m; //输入数据的总数b

printf("input total data = ");

scanf("%d",&m);m

for(i=1;i<=m;i++)//循环m次

{

printf("number %d = ",i);//提示输入

scanf("%d",&x);

sum += x;

}

b=(float)sum/m;// 求平均值

printf("b=%f\n",b);//显示平均值

}

④ 在c语言程序中 ,用链表形式输入和输出学生信息,求年龄平均值

#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个学生的信息(包括学号、名字、年龄): ",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 ",agev/n); //求出平均年龄

}

void output(struct student *head)

{

struct student *p=NULL;

p=head;

printf("No. name age ");

while(p!=NULL)

{

printf("%-6d %s %4d ",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 ", *head);

free(*head);

*head=tmp;

}

}

int main()

{

struct student *head=NULL;

printf("please input student number(n): ");

scanf("%d",&n);

head=input();

printf("main:%p ", head);

average(head);

output(head);

Destroy(&head);

return 0;

}


修改了一下

voidaverage(structstudent*head)

和主函数中的调用


另外增加了动态内存的释放,不释放会造成内存泄露的!!

⑤ c语言 求平均数有什么函数

1、首先我们打开我们的编译器,新建工程,文件后,写下我们的头文件和主函数。