2019寒假训练营第二次作业

学习视频课程

学习笔记博客

程序题(C语言实现)

GitHub上的仓库

热身题

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

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

基本题

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

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

开放题

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

2.我的方法

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

3.实现:

本文作者:心有所向,日复一日,必有精进

本文链接:https://www.cnblogs.com/Stareven233/p/10333967.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   NoNoe  阅读(168)  评论(7编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 Relaxロウきゅーぶ 渡辺剛
  2. 2 カントリーマーチ 栗コーダーカルテット
  3. 3 BGM-M7 かみむら周平
  4. 4 八百万の風が吹く Foxtail-Grass Studio
  5. 5 雲流れ Foxtail-Grass Studio
  6. 6 Melody 梶浦由記
  7. 7 ロック风アレンジ Angel Beats
  8. 8 ヨスガノソラ メインテーマ -遠い空へ- Bruno Wen-li
  9. 9 Servante du feu Matthieu Ladouce
  10. 10 Lost my pieces (Piano Ver.) 橋本由香利
  11. 11 潮鳴り 折戸伸治
  12. 12 雪風 Foxtail-Grass Studio
  13. 13 Bloom of Youth 清水淳一
  14. 14 落月随山隐 饭碗的彼岸,夜莺与玫瑰
  15. 15 Autumn Journey Eric Chiryoku
  16. 16 Alpha C418
  17. 17 Money之歌 神楽Mea
カントリーマーチ - 栗コーダーカルテット
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

暂无歌词