📄 解f256方程-尾数交集过滤.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int A[7]={0};
int B[5][15]={0};
int wh[6]={11};
void main()
{
int i,j=0,k[5]={0},tem=11;
int s=0,g_num=0,cnt=0,m=0,n=0,t=0,h=0;
FILE *fr,*fr_ca,*fw;
char res_file[500],result_file[500];
printf("请输入源文件名\n");
scanf("%s",res_file);
if((fr=fopen(res_file,"r"))==NULL)
{
printf("cannot open the file\n");
exit(0);
}
printf("请输入结果文件名\n");
scanf("%s",result_file);
fw=fopen(result_file,"w");
fr_ca=fopen("ca_mantissa","r");
////////////////////////////////////////////////
while(fscanf(fr_ca,"%d",&s)!=EOF)//读入尾数条件
{
if(s!=34)
B[t][j++]=s;
else
{
k[t]=j;
t++;
j=0;
}
}
g_num=t;
j=0;
printf("尾数条件:\n");
for(i=0;i<g_num;i++)
{
for(j=0;j<k[i];j++) printf("%d ",B[i][j]);
printf("\n");
}
//////////////////////////////////////////////////////////
j=0;
while(fscanf(fr,"%d",&s)!=EOF)
{
A[j++]=s;
if(j==6)
{
j=0;
//尾号计算-统计每组号的尾号
for(i=0;i<6;i++)
{
for(m=0;m<h;m++)
if((A[i]%10)==wh[m])
break;
if(m==h)
{
wh[h]=A[i]%10;
h++;
}
}
for(i=0;i<g_num;i++)//尾数交集过滤
{
cnt=0;
for(n=0;n<h;n++)
for(m=1;m<k[i]-1;m++)
if(wh[n]==B[i][m]) cnt++;
if(cnt<B[i][0]||cnt>B[i][k[i]-1])
break;
}
if(i==g_num)
{
for(i=0;i<6;i++) fprintf(fw,"%02d ",A[i]);
fprintf(fw,"\n");
}
h=0;
}
}
fcloseall();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -