主题:[讨论]求助 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 mfun2(int sj[][L],int n,int *ii)//从第ii行开始往上统计每行最后一个数共出现n个时再上面一行的所有数是否都是已出现过的那n个数;
//成立返回1,不成立返回0,已到达数据顶部,无法再判断返回-1;并返回判断后停留的行号;
{
int i,j;
struct tt hjq={0,1,2,3,4,5,6,7,8,9,0};
for(i=(*ii);1;i--)
{ if(i<0)
{
//printf("-1 %d→%d\n",i,*ii);
return -1;
}
else if(hjq.an==n)break;
if(hjq.a[sj[i][L-dsh]]!=-1)
{
hjq.a[sj[i][L-dsh]]=-1;
hjq.an++;
}
}
//for(j=0;j<L;j++)
//{
if(hjq.a[sj[i][L-dsh]]!=-1)//检查该行倒数第dsh个数
{
//printf("0 %d→%d\n",i,*ii);
*ii=i;
return 0;
}
//}
//printf("1 %d→%d\n",*ii,i);
*ii=i;
return 1;
}
#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 mfun2(int sj[][L],int n,int *ii)//从第ii行开始往上统计每行最后一个数共出现n个时再上面一行的所有数是否都是已出现过的那n个数;
//成立返回1,不成立返回0,已到达数据顶部,无法再判断返回-1;并返回判断后停留的行号;
{
int i,j;
struct tt hjq={0,1,2,3,4,5,6,7,8,9,0};
for(i=(*ii);1;i--)
{ if(i<0)
{
//printf("-1 %d→%d\n",i,*ii);
return -1;
}
else if(hjq.an==n)break;
if(hjq.a[sj[i][L-dsh]]!=-1)
{
hjq.a[sj[i][L-dsh]]=-1;
hjq.an++;
}
}
//for(j=0;j<L;j++)
//{
if(hjq.a[sj[i][L-dsh]]!=-1)//检查该行倒数第dsh个数
{
//printf("0 %d→%d\n",i,*ii);
*ii=i;
return 0;
}
//}
//printf("1 %d→%d\n",*ii,i);
*ii=i;
return 1;
}