2019寒假训练营第二次做业

学习视频课程

学习笔记博客html

程序题(C语言实现)

GitHub上的仓库git

热身题

实现思路
打开输入输出文件,用fgetc和fputc函数逐字符将文件内容写到output.txt中,最后关闭这两个文件github

实现结果
output文件里和Request同样,有了好多好多的记录。数组

基本题

实现思路
1.定义一个结构体数组,用fscanf将文件读入并存入结构体数组。
2.统计全部发送方发送的总信息大小,并将结果存入另外一个结构体数组。
3.循环判断超出阈值的人数和名字,并将名字存入一个二维数组(为了先输出黑客的数量),以后按要求输出人数和分别的名字。服务器

实现结果
成功找出了5个黑客,分别是gmhq,dxjr,cftm,mebk,cnkz
函数

开放题

1.吐槽
方法一要求把全部请求和对应的信息大小都存下来,占用不少内存,并且其中的服务器名bob更是重复了一万次...把黑客名存进黑名单也很麻烦,并且输出有先输出人数再输出名字的要求,若反过来能舒服很多。学习

2.个人方法视频

  • 概述:
    不保存全部请求,但保存整理后每一个发送方及其发送的信息总大小(发送方不重复)。
    每次读入文件的一行,而后判断这个发送方以前是否发送过,若没有则为其建立一个记录来保存他发送的信息总大小。以后累计该发送方发送的信息总大小,并判断他发送的信息总量是否超过了阈值,若超过则输出他的名字,并将其标记为黑客,总黑客人数加一。最后关闭文件,输出黑客总数。
  • 优势:
    只须要一个结构体一个函数,更加简练。占用内存更少并且运行速度有所提升。而且总请求数量和黑客数量都支持小于一万的任意正整数,使程序更为灵活。
  • 缺点:
    都放在同一个函数层次不够分明,不太好理解。没有严格按照题目要求,改成先输出黑客名字再输出总个数,但问题不大。依然没法支持任意正整数的请求数量,最高只能处理一万个请求。

3.实现:htm

相关文章
相关标签/搜索