作业帮 > 综合 > 作业

C语言题中在for语句后面用MAX-5与MAX的效果竟然相同,为什么会出现这种状况?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/27 13:40:33
C语言题中在for语句后面用MAX-5与MAX的效果竟然相同,为什么会出现这种状况?
☆题目30(整数统计排序题)
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续小于该四位数以后的五个数且该数是偶数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中.
#include
#define MAX 200
int a[MAX],b[MAX],cnt = 0;
void jsVal()
{
int i,j,k,thou,hun,ten,unit,data,ab,cd,flag=0,m,n=0;
for (i=0; i
1楼果然不太懂,人家写的是
#define MAX 200
不是
const MAX=200;
循环里本来就不应该填200的吧,一共200个数,那么第196个数后面哪来的第5个数去判断是否偶数啊(没有第201个数吧)? 数组访问越界,内容不确定
再问: 我想请教,为什么“数组访问越界,内容不确定”能够导致使用MAX-5与MAX得出相同的结果?而内容不确定,我的理解是,每回的结果都会不同,可是每次运行之后的结果都一样。这是为什么?内容不确定怎么理解?如果运行到196,也就是i+5=201的情况,这个if (a[i]