文章

47

粉丝

21

获赞

0

访问

3.7k

头像
2025 年 6 月第 1 次 408 月考试卷 - 第41题回答
数据结构
发布于2025年10月22日 20:58
阅读数 38

(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 4. 变量名大小写不一致(A和a混用)
5. 条件判断中使用了赋值运算符=而不是比较运算符==
6. 逻辑判断条件错误(min=65536||max=-65535)
7. 内层循环j的起始位置应为i+1而不是0
8. 输出的是所有满足条件的峰谷对,但题目要求的是最大差值
9....

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发