博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二次寒假作业
阅读量:5051 次
发布时间:2019-06-12

本文共 746 字,大约阅读时间需要 2 分钟。

2019第二次寒假作业

学习视频课程笔记地址:

热身题:

思路:

通过fopen 打开两个文件进行读与写
通过循环 应用getc来读入字符 fputc来写入字符
过程及结果:
1594119-20190201160743172-936355041.png
1594119-20190201160756391-1601902552.png

1594119-20190201160803706-424302104.png

成功读入

基本题:

思路:

读取方式与热身题相同。

我运用的是c语言的结构体。首先我是把Reques中的数据读入我构建的结构体并记录发送者数量,通过嵌套循环,通过strcmp函数判断是否是同个用户,将同个用户的请求值求和,并把请求值之和大于1500的用户提出来,并判断是否重复,如果不重复便将利用strcpy函数将其复制给另一个结构体数组,并记录黑客数量,最后分别输出黑客数量与名字。
结果:
1594119-20190201161455112-1760665892.png

开放题:

吐槽:

一、首先需要把所有请求和信息存在下来 耗时耗内存
二、此题情况特殊:
发送者名字均为四个字符 如果不限制名字字符个数 再用这种方法 这道题会更加麻烦
而且此次数量并不大 我程序中计算过 只有一万多个 如果数量再大点 统计的无效信息很多 将耗费很多时间与内存
该题本着另可错杀一千也不放过一个,所以该方法准确率不高

解决方案:

本题方法是通过统计请求值总值,我认为可以通过统计同个用户的请求次数,一般真正客户不会短时间内给你发送多次请求,一般是在一次请求内概述了他的需求,
如果短时间发送次数过多,可以大致确定是黑客。如果用户发送的信息大例如超过1500,并不能确定他就是黑客,如果是因为他需求多呢,因此通过此方法可以提高准确率

优点:相对于通过计算请求值总值提高了准确率

缺点:在内存和耗时方面没有较大提高

实现:暂时未实现,我觉得单用c语言的话改变应该不大,如果学习的新的语言可以尝试改进

转载于:https://www.cnblogs.com/zhangfeng406/p/10346202.html

你可能感兴趣的文章
Hibernate一对多、多对一关联
查看>>
一、记录Git使用中遇到的问题及解决方法
查看>>
学习网址
查看>>
前端表格插件datatables
查看>>
内部类
查看>>
树链剖分入门
查看>>
图解算法时间复杂度
查看>>
UI_搭建MVC
查看>>
一个样例看清楚JQuery子元素选择器children()和find()的差别
查看>>
代码实现导航栏分割线
查看>>
Windows Phone开发(7):当好总舵主 转:http://blog.csdn.net/tcjiaan/article/details/7281421...
查看>>
VS 2010打开设计器出现错误
查看>>
SQLServer 镜像功能完全实现
查看>>
Vue-详解设置路由导航的两种方法
查看>>
一个mysql主从复制的配置案例
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
dvwa网络渗透测试环境的搭建
查看>>
Win8 安装VS2012 和 Sql Server失败问题
查看>>
过点(2,4)作一直线在第一象限与两轴围成三角形,问三角形面积的最小值?...
查看>>
java aes CBC的填充方式发现
查看>>