单链表:求所有不及格人数的累计数

简介: 单链表:求所有不及格人数的累计数
#include<iostream>
#include<malloc.h>
#include <iomanip>
using namespace std;
typedef int ElemType;
#define M 20
typedef struct LNode
{
  ElemType data;  //定义数据与
  struct LNode* next; //指针域
}LNode, * LinkList;
void CreateLink(LinkList& h, ElemType a[], int n)
{
  LinkList s, tc; int i;
  h = (LinkList)malloc(sizeof(LinkList));
  tc = h;
  for (i = 0; i < n; i++)
  {
    s = (LinkList)malloc(sizeof(LinkList)); //头节点创建
    s->data = a[i];
    tc->next = s;
    tc = s;
  }
  tc->next = NULL;
}
int Count(LinkList sl)
{
  int k = 0;
  LNode* p;
  if (sl->next == NULL)return 0;
  p = sl->next;
  //不及格判断
  while (p != NULL)
  {
    if (p->data < 60) { k++; }
    p = p->next;
  }
  return k;
}
void main()
{
  int N;
  //cout << "请输入学生人数:" << endl;
  cout << "学生人数为:";
  cin >> N;
  LinkList head;
  ElemType a[M];
  int i, k;
  cout << "请依次输入所有学生的成绩:" << endl;
  for (i = 0; i < N; i++)
    scanf_s("%d", &a[i]);
  cout << "所有学生的成绩依次为:" << endl;
  for (i = 0; i < N; i++)
  {
    cout << a[i] << setw(6);
  }
  cout << endl;
  CreateLink(head, a, N);//创建单链表
  k = Count(head);//调用求计数值的函数
  cout << "所有学生的成绩中不及格的人数为:" << k << "人";
  cout << endl;
}
相关文章
|
7月前
【Leetcode 1944】队列中可以看到的人数 —— 单调栈
解题思路:维持一个单调递增栈来辅助计算每个人能够看到的人数。从右往左遍历数组,对于每个人,我们将其身高与栈顶元素的身高进行比较。如果当前人的身高比栈顶元素的身高高,则栈顶元素无法被当前人看到,将其出栈,并累计计数
重温通讯录,链表尾插法
重温通讯录,链表尾插法
55 0
|
2月前
【九度 OJ 05】统计同成绩学生人数
【九度 OJ 05】统计同成绩学生人数
14 1
|
6月前
|
存储 人工智能 测试技术
每日练习之排序——链表的合并;完全背包—— 兑换零钱
每日练习之排序——链表的合并;完全背包—— 兑换零钱
35 2
|
7月前
|
存储
leetcode1944. 队列中可以看到的人数
leetcode1944. 队列中可以看到的人数
36 0
|
7月前
|
算法 测试技术 C#
【单调栈】LeetCode:1944队列中可以看到的人数
【单调栈】LeetCode:1944队列中可以看到的人数
|
7月前
|
机器学习/深度学习
数据结构实验之排序四:寻找大富翁
数据结构实验之排序四:寻找大富翁
L2-009 抢红包 (25 分)(结构体排序)
L2-009 抢红包 (25 分)(结构体排序)
63 0
L2-009 抢红包 (25 分)(结构体排序)
LeetCode-2049 统计最高分的结点数
LeetCode-2049 统计最高分的结点数