文章
47
粉丝
21
获赞
0
访问
3.7k
(1)用max记录最大峰的值,用min记录最小谷的值。max初值-65536,min初值65535。遍历数组,若当前元素满足峰,则与max比较,若大于峰,则将峰赋值为该元素;若当前元素满足谷,则与min比较,若小于谷,则将谷赋值为该元素值。若max值为-65536或min值为65535,返回0,否则循环遍历数组,找出与max值相等的数组下标,然后循环遍历数组找出与min值相等的数组下标进行峰谷对输出。
void seek(int A[n]){
int max=-65536;
int min=65535;
for(int i=1;i<n-2;i++){
if(a[i]>a[i-1]&&a[i]>a[i+1]&&a[i]>max)
{
max=a[i];
}
if(a[i]<a[i-1]&&a[i]<a[i+1]&&a[i]<min)
{
min=a[i];
}
if(min=65536||max=-65535){
return 0;
}else {
for(int i=1;i<n-2;i++){
if(a[i]==max)
{
for(int j=0;j<n-2;j++){
if(a[i]==min)
{
cout<<"("<<i<<j<<")"<<endl;
}
}
}
}
}
}
(3)时间复杂度O(n×n),空间复杂度O(0)。
评分及理由
(1)得分及理由(满分4分)
得分:0分
理由:学生的基本设计思想存在严重逻辑错误。题目要求找峰谷对(i,j)且i (2)得分及理由(满分7分) 得分:1分 理由:代码实现中存在多处错误:
1. 函数声明应为int类型,但写成了void
2. 数组参数A[n]写法错误
3. 循环条件i
5. 条件判断中使用了赋值运算符=而不是比较运算符==
6. 逻辑判断条件错误(min=65536||max=-65535)
7. 内层循环j的起始位置应为i+1而不是0
8. 输出的是所有满足条件的峰谷对,但题目要求的是最大差值
9....
登录后发布评论
暂无评论,来抢沙发