老师,看一下我的程序哪出了问题
来源:2-11 编程练习
gyans
2018-04-26 10:32:09
#include<iostream>
using namespace std;
//声明求数组最大值的函数
int max(int *p,int len)
{
int i,s=0;
for(i=0;i<len;i++,p++)
{
if(*p>*(p+1))
{
s=*p;
*(p+1)=s;
}
else
{
s=*(p+1);
}
}
return s;
}
int main()
{
//定义一维数组
int num[5]={4,5,2,6,9};
//调用函数,输出返回值
cout<<"数组num的最大值为:"<<max(num,5)<<endl;
return 0;
}
1回答
你好,数组总共有五个元素,循环中i小于数组长度len,当循环到最后数组的最后一个元素时,p+1的地址已经不在数组范围内了,此时越界,*(p+1)的值就不确定了,修改如下:

或者将数组所有元素跟s比一遍,大的赋给s,最终也能将最大值挑选出来

如果解决了你的问题,请采纳,祝学习愉快~
相似问题
回答 1
回答 1
回答 2
回答 1
回答 1