#include <stdlib.h>
int iGlobal
typedef struct tagNode
{
int iData
int iCount
struct tagNode *pLeft
struct tagNode *pRight
}Node
Node *Add(Node *a, Node *pNow, int iVal)
{
if (iGlobal == 0)
{
a[0].pLeft = a[0].pRight = NULL
a[0].iCount = 1
a[0].iData = iVal
++iGlobal
}
else
{
if (pNow == NULL)
{
pNow = a + (iGlobal++)
pNow->pLeft = pNow->pRight = NULL
pNow->iCount = 1
pNow->iData = iVal
}
else
{
if (iVal <pNow->iData)
{
pNow->pLeft = Add(a, pNow->pLeft, iVal)
}
else if (iVal == pNow->iData)
{
++pNow->iCount
}
else
{
pNow->pRight = Add(a, pNow->pRight, iVal)
}
}
}
return pNow
}
Node *Find(Node *a, int iVal)
{
if (a == NULL)
{
return NULL
}
else
{
if (iVal <a->iData)
{
return Find(a->pLeft, iVal)
}
else if (iVal == a->iData)
{
return a
}
else
{
return Find(a->pRight, iVal)
}
}
}
int main(void)
{
int m, n, i, q, temp
Node *a = NULL
Node *p = NULL
FILE *fp
if ((fp = fopen("data.txt", "r")) == NULL)
{
printf("File not found!\n")
return -1
}
fscanf(fp, "%d %d", &m, &n)
do
{
iGlobal = 0
if ((a = (Node *)malloc(m * n * sizeof(Node))) == NULL)
{
return -1
}
for (i=0i<m*n++i)
{
fscanf(fp, "%d", &temp)
Add(a, a, temp)
}
fscanf(fp, "%d", &q)
for (i=0i<q++i)
{
fscanf(fp, "%d", &temp)
p = Find(a, temp)
if (p == NULL)
{
putchar('0')
}
else
{
printf("%d", p->iCount)
}
if (i != q-1)
{
putchar(' ')
}
else
{
putchar('\n')
}
}
if (a != NULL)
{
free(a)
a = NULL
}
fscanf(fp, "%d %d", &m, &n)
}while (m != 0 &&n != 0)
return 0
}
根据我的理解文件中的数据应该是这样的:
3 4
1 1 1 4
2 2 2 4
3 3 3 4
4
1
2
3
4
0 0
每一个整数或负数表示每种病毒变种,这个解答的思路是建立二叉排序树,存放数据的文件名为data.txt,你可以自己在源代码中修改。如果理解错了,那就给出测试用例,我再修改
第一种方法:―――――――――病毒代码由欧洲计算机防病毒协会提供把下面这段代码复制到记事本里,保存为文本文件,然后静观杀毒软件之变。若有反应,那您就可以初步放心了。。。注意,本病毒代码绝对不会伤害到机器.请放心!!!
――――――――我是分割线,不要复制我,复制我下面的代码――――――――――――――
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
――――――――我也是分割线,不要复制我,复制我上面的代码――――――――――――――
这段代码是欧洲计算机防病毒协会开发的一种病毒代码,其中的特征码已经包含在各种杀毒软件的病毒代码库里,所以可以用做测试病毒扫描引擎。
一般保存后杀毒软件就会检测出来,已经测试过并能检测出的杀毒软件有McAfee8.oi,NOD32,瑞星2006,Norton
AntiVirus2005;江民2005未能自动检测出来,只能通过手动检测查出。大家不妨自己测试一下。
第2种方法
http://www.epdd.com/download/show.asp?id=37
专用病毒测试包
测试杀毒软件的杀毒能力。
第一种:直接杀压缩包,如果杀毒数低于96个,请换你现有的杀毒软件吧!
第二种:直接杀压缩包,如果杀毒数低于3600个,请换你现有的杀毒软件吧!
注意:下载该压缩包之后,不要解压,直接用安全软件检测就可以测试你的杀毒软件的能力,而且病毒不会伤害你电脑。但是禁止解压缩这个文件夹!不看清楚说明而造成电脑受病毒侵害的,电大网不负任何责任!测试完杀毒软件之后建议马上删除掉这个病毒压缩包!
http://www.365mf.com/soft/6293.htm
软件介绍:A-Z开头病毒样本打包下载,压缩文件内约7159个文件,约3573个病毒!看看各种杀毒软件能查出几个。验证一下查杀病毒的真正能力吧。仅供研究之用!
压缩包里面全部是病毒程序,千万不要解压运行。
用你的杀毒软件查这个压缩包,如果查出的病毒数少于3542个的话,你还是换换杀毒软件吧!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)