c语言建立线性表并输出,建立一个线性表,求平均成绩 (越快分越多),该如何处理...

C/C++ code#include

#include

#include

typedef struct Node

{

char name[20];

float score;

struct Node* next;

}*LinkList;

void Reverse(LinkList head)

{

LinkList p1 = head,p2 = head->next,p3;

p1->next = NULL;

while(p2)

{

p3 = p2->next;

p2->next = p1->next;

p1->next = p2;

p2 = p3;

}

}

void DelUnder60(LinkList head)

{

LinkList p1 = head->next,p2,p3=head;

while(p1)

{

p2 = p1->next;

if (p1->score<60)

{

free(p1);

p3->next = p2;

p1 = p2;

}

else

{

p3 = p3->next;

p1 = p1->next;

}

}

}

void OutPut(LinkList head)

{

LinkList p = head->next;

while(p)

{

printf("name is %s and score = %f\n",p->name,p->score);

p = p->next;

}

printf("\n");

}

int main()

{

char Tmp[20];

float meanScore=0.00;

int nCount=0;

LinkList tmp,p;

LinkList head = (LinkList)malloc(sizeof(struct Node));

head->next = NULL;

p = head;

while(scanf("%s",Tmp)!=EOF)

{

nCount++;

tmp = (LinkList)malloc(sizeof(struct Node));

strcpy(tmp->name,Tmp);

scanf("%f",&tmp->score);

meanScore += tmp->score;

tmp->next = p->next;

p->next = tmp;

p = tmp;

}

meanScore /= nCount;

printf("%f\n",meanScore);

OutPut(head);

Reverse(head);

OutPut(head);

DelUnder60(head);

OutPut(head);

return 0;

}

------解决方案--------------------探讨

看楼主的头像不错。把以前写的作业拿出来了。

C/C++ code

#include

#include

#include

typedef struct Node

{

char name[20];

float score;

struct Node* next;

}*LinkList;

void Revers……

------解决方案--------------------

探讨

看楼主的头像不错。把以前写的作业拿出来了。

C/C++ code

#include

#include

#include

typedef struct Node

{

char name[20];

float score;

struct Node* next;

}*LinkList;

……

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的线性表的示例代码,使用C语言实现: ```c #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 // 线性表的最大长度 typedef struct { int data[MAX_SIZE]; int length; } List; // 初始化线性表 void initList(List *list) { list->length = 0; } // 插入元素 void insertList(List *list, int index, int value) { if (index < 0 || index > list->length || list->length >= MAX_SIZE) { printf("插入失败,超出线性表范围或线性表已满\n"); return; } for (int i = list->length; i > index; i--) { list->data[i] = list->data[i - 1]; } list->data[index] = value; list->length++; } // 删除元素 void deleteList(List *list, int index) { if (index < 0 || index >= list->length) { printf("删除失败,超出线性表范围\n"); return; } for (int i = index; i < list->length - 1; i++) { list->data[i] = list->data[i + 1]; } list->length--; } // 输出线性表 void printList(List *list) { printf("线性表长度:%d,元素:", list->length); for (int i = 0; i < list->length; i++) { printf("%d ", list->data[i]); } printf("\n"); } int main() { List list; initList(&list); insertList(&list, 0, 1); insertList(&list, 1, 2); insertList(&list, 2, 3); printList(&list); deleteList(&list, 1); printList(&list); return 0; } ``` 这个示例代码中,我们定义了一个结构体 `List` 来表示线性表,包含一个整型数组 `data` 和一个整型变量 `length`。`MAX_SIZE` 宏定义了线性表的最大长度。然后定义了一些操作函数: - `initList`:初始化线性表。 - `insertList`:在指定位置插入元素。 - `deleteList`:删除指定位置的元素。 - `printList`:输出线性表的长度和所有元素。 在主函数中,我们初始化了一个线性表,然后插入了三个元素,输出线性表,再删除第二个元素,最后输出线性表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值