當前位置:首頁 » 編程語言 » 單鏈表求平均值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、首先我們打開我們的編譯器,新建工程,文件後,寫下我們的頭文件和主函數。