主题:[讨论]求助 c语言问题
下面的是一个大程序中的一个小程序 帮我分析一下 尽量详细 具体到每行就更好了
#include<stdio.h>
#include<io.h>
#include<string.h>
#include<stdlib.h>
#define L 5
#define H 20000
int hh;
int hjqs,hjqt;
int dsh;//倒数第几个数
int fun2(int sj[][L],int n)//统计 从最后一行起,每行最后一个数有不同的n个时,再上面一行所有数都是已出现过的数 的情况连续出现最多的次数
{
int i,m;
int x,x0;
int tj=0;
int hjqts,hjqtt,ii[2];
int *cp,nn;
x=x0=0;
cp=(int*)calloc(hh,sizeof(int));
for(i=hh-1;(m=mfun2(sj,n,&i))!=-1;ii[0]=i-1,ii[1]=m,i--)
{
if(m)
{
if(x0==0&&ii[1]==0)
{
hjqts=ii[0];
}
hjqtt=i;
x0++;
tj++;
}
else
{
(*(cp+x0-1))++;
if(x0>x)
{
hjqt=hjqtt;
hjqs=hjqts;
x=x0;
}
x0=0;
}
}
if(m==1) (*(cp+x0-1))++;
for(nn=(x>x0?x:x0);
nn>=1;nn--){
printf("连续%d次不中共有%d次\n",nn,*(cp+nn-1));
}
//free(cp);
//printf("满足条件的有%d条。\n",tj);
return (x>x0?x:(hjqt=hjqtt,hjqs=hjqts,x0));
}
#include<stdio.h>
#include<io.h>
#include<string.h>
#include<stdlib.h>
#define L 5
#define H 20000
int hh;
int hjqs,hjqt;
int dsh;//倒数第几个数
int fun2(int sj[][L],int n)//统计 从最后一行起,每行最后一个数有不同的n个时,再上面一行所有数都是已出现过的数 的情况连续出现最多的次数
{
int i,m;
int x,x0;
int tj=0;
int hjqts,hjqtt,ii[2];
int *cp,nn;
x=x0=0;
cp=(int*)calloc(hh,sizeof(int));
for(i=hh-1;(m=mfun2(sj,n,&i))!=-1;ii[0]=i-1,ii[1]=m,i--)
{
if(m)
{
if(x0==0&&ii[1]==0)
{
hjqts=ii[0];
}
hjqtt=i;
x0++;
tj++;
}
else
{
(*(cp+x0-1))++;
if(x0>x)
{
hjqt=hjqtt;
hjqs=hjqts;
x=x0;
}
x0=0;
}
}
if(m==1) (*(cp+x0-1))++;
for(nn=(x>x0?x:x0);
nn>=1;nn--){
printf("连续%d次不中共有%d次\n",nn,*(cp+nn-1));
}
//free(cp);
//printf("满足条件的有%d条。\n",tj);
return (x>x0?x:(hjqt=hjqtt,hjqs=hjqts,x0));
}