房天下 > 房天下问答 > 业主生活 > 其他
  • 有道上机题目没看懂MAXLINE不已知能用吗

    题目是已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些正整数右移1位二进制位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。答案是void CalValue(void){ int i,j; /*定义局部变量*/ int yy[MAXNUM]; i=0;j=0; for (i=0;i<MAXNUM;i++) /*将正整数存入数组yy中,并统计正整数的个数*/ {if (xx[i]>0) {yy[j]=xx[i];j++;totNum++;} } for(i=0;i<totNum;i++) if((yy[i]>>1)%2==0) /*判断这些数右移一位后产生的新数是否为偶数*/ {totCnt++; /*统计偶数的个数*/ totPjz=totPjz+yy[i];} /*计算符合条件的数的和*/ if(totCnt==0) /*计算符合条件的数的平均值*/ totPjz=0; else totPjz=totPjz/totCnt;}我就是不明白i=0;i<MAXNUM;i++) MAXNUM不还不已知呢吗,如何判断i是不是小于它呀,能用他吗,为什么要用它呀,不用他直接执行下面的语句不可以吗

    提问者:wuchqing449

    发布于2011-02-12

共1个回答
  • 肯师傅在线 丨Lv 0
    MAXNUM都是大写,按照惯例是常数,常数一般在.h文件中已经规定数值了。根据题目中说的若干个<200,这个应该是200了不过for (i=0;i<MAXNUM;i++)倒是有些失水准,应该直接for (i=0;xx[i]>0;i++),不然就是一个数也得算200回。而且i,j分开没有起到任何作用。
    +1 2011-02-12 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。