一个疑问:数字统计排序题!!!!!!!!!!!!!!!!!!!!!!!!
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以前的五个数且该数是偶数(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中,#define MAX 200
int a[MAX],b[MAX],cnt=0;
void jsVal()
{int i,j,flag;
for(i=5;i<MAX;i++)
{for(j=i-5;j<i;j++)
if(a[i]>a[j]&&a[i]%2==0) flag=1;
else { flag=0; break;}
if(flag==1) b[cnt++]=a[i];
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]<b[j]) {flag=b[i];b[i]=b[j];b[j]=flag;}
}
蓝色字体部分,有的答案是写i<MAX-5,我之前也一直写后者,但看了这份答案,就搞不懂了,是不是一样
情况2,若题目改成连续大于该四位数以后的五个数
for(i=5;i<MAX-5;i++)
{for(j=i+1;j<=i+5;j++)
[[it] 本帖最后由 cbullet 于 2008-4-5 00:36 编辑 [/it]]