我觉得你利用判断然后统计出个数及好办了,如果是浮点型,用格式转换进行大小比较判断

Maybe
程序代码:int i=0, N_Number=0;
double c, Cca[Dim];
int NOpen[Dim], iN;
char c0[Dim][2], c1[Dim][2], c2[Dim][2], c3[Dim][2], b0[2], b1[2], b2[2], b3[2];
while( fscanf(fp, "%lf %d %s %s %s %s\n", &c, &iN, b0, b1, b2, b3)!=EOF )
{
Cca[i] = c;
NOpen[i] = iN;
strcpy(c0[i], b0);
strcpy(c1[i], b1);
strcpy(c2[i], b2);
strcpy(c3[i], b3);
i++;
N_Number++;
}2.挑选需统计行到新文本(注意字符串的输出改为整形)
程序代码:while (i<N_Number)
{
if ( (NOpen[i]==0) && (NOpen[i+1]>0) )
{
fprintf(pn, "%lf %d %c%c %c%c %c%c %c%c\n", Cca[i], NOpen[i], c0[i][0],c0[i][1], c1[i][0],c1[i][1],c2[i][0],c2[i][1],c3[i][0],c3[i][1]);
}
i++;
}3.字符统计
程序代码:for (i=0; i<N_Number; i++)
{
if( (c0[i][0]=='0')&&(c0[i][1]=='0') ) a00++;
if( (c0[i][0]=='0')&&(c0[i][1]=='1') ) a01++;
if( (c0[i][0]=='1')&&(c0[i][1]=='0') ) a10++;
if( (c0[i][0]=='1')&&(c0[i][1]=='1') ) a11++;
if( (c1[i][0]=='0')&&(c1[i][1]=='0') ) a00++;
if( (c1[i][0]=='0')&&(c1[i][1]=='1') ) a01++;
if( (c1[i][0]=='1')&&(c1[i][1]=='0') ) a10++;
if( (c1[i][0]=='1')&&(c1[i][1]=='1') ) a11++;
if( (c2[i][0]=='0')&&(c2[i][1]=='0') ) a00++;
if( (c2[i][0]=='0')&&(c2[i][1]=='1') ) a01++;
if( (c2[i][0]=='1')&&(c2[i][1]=='0') ) a10++;
if( (c2[i][0]=='1')&&(c2[i][1]=='1') ) a11++;
if( (c3[i][0]=='0')&&(c3[i][1]=='0') ) a00++;
if( (c3[i][0]=='0')&&(c3[i][1]=='1') ) a01++;
if( (c3[i][0]=='1')&&(c3[i][1]=='0') ) a10++;
if( (c3[i][0]=='1')&&(c3[i][1]=='1') ) a11++;
fprintf(pn, "%lf %lf %lf %lf\n", a00/(double)4, a01/(double)4, a10/(double)4, a11/(double)4);
a00=0, a01=0, a10=0, a11=0;
}