word文档查重算法C语言代码
想用C语言写个程序,可以实现论文查重功能,输出论文的重复率,求大神指教!
程序代码:/*检查论文重复率*/
#include<stdio.h>
#include<stdlib.h>
FILE *fp1,*fp2;
void fun_open()//初始化事件
{
/* char road_1[100],road_2[100];
pirntf("请输入论文1路径\n");
scnaf("%[^\n]%*c",road_1);
pirntf("请输入论文2路径\n");
scnaf("%[^\n]%*c",road_2);
if ((fp1=fopen(road_1,"r"))==NULL)
{
printf("无法打开此文件\n");
exit(0);
}
if ((fp2=fopen(road_2,"r"))==NULL)
{
printf("无法打开此文件\n");
exit(0);
}
---这里提供了自行输入路径格式的方式*/
if ((fp1=fopen("D:\\个人管理\\编程\\文本\\读写文件\\读写.txt","r"))==NULL)//路径和格式自己改~当然
{
printf("无法打开此文件\n");
exit(0);
}
if ((fp2=fopen("D:\\个人管理\\编程\\文本\\读写文件\\读写2.txt","r"))==NULL)//路径和格式自己改
{
printf("无法打开此文件\n");
exit(0);
}
}
void load()//输出两篇论文
{
char ch1,ch2;
printf("两篇论文输出如下\n\n论文1:\n\n");
while (!feof(fp1))
{
ch1=fgetc(fp1);
putchar(ch1);
}
putchar(10);
printf("\n论文2\n\n");
while (!feof(fp2))
{
ch2=fgetc(fp2);
putchar(ch2);
}
putchar(10);
}
void judge()//判断
{
char ch1,ch2;
double same=0.0,dif=0.0;
while (!feof(fp1)||!feof(fp2))
{
while((ch1=fgetc(fp1))==' ');//防止空格影响~
while((ch2=fgetc(fp2))==' ');
if (ch1==ch2)same++;
else dif++;
}
printf("\n两篇论文的重复率为%%%.2f\n",same/(same+dif)*100);
}
void fun_rewind(FILE *fp1,FILE *fp2)
{
rewind(fp1);
rewind(fp2);
}
int main()
{
fun_open();
load();
fun_rewind(fp1,fp2);
judge();
fclose(fp1);
fclose(fp2);
return 0;
}








