已解决,是由于输出格式的原因。需要在最后把last的值调整一下
代码在自己电脑的vscode上运行正确,但在PAT上错误是为什么呢?
PAT平台的一道题,有序数组的插入,https://pintia.cn/problem-sets/434/problems/965573204499779584
我的思路是先判断数据是否会溢出,如果会,显示插入失败;
如果不会,则再判断原数组中是否存在数据和要插入的数相等,如果存在,显示插入失败;
如果不存在,则将要插入的数X添加在数组的末尾
然后进入循环
循环内容是将X与相邻的数比较大小,如果X大于相邻的数,则X与相邻的数交换位置;
如果X小于相邻的数,则直接跳出循环,显示插入成功。
思路应该没有问题,因为代码在自己电脑的vscode上运行正确,各种情况都试过一遍。
我的代码是这样的:
bool Insert( List L, ElementType X)
{
bool b = true;
Position i;
ElementType temp;
int cnt = 0;
if((L->Last)+1==MAXSIZE)
b = false;
else{
for(i=(L->Last); i>=0; i--){
if(L->Data[i]==X){
cnt++;
b = false;
break;
}
}
if(cnt==0){
L->Data[(L->Last)+1]=X;
for(i=(L->Last); i>=0; i--){
if (L->Data[i]<X){
temp = L->Data[i];
L->Data[i] = X;
L->Data[i+1] = temp;
}else{
break;
}
}
}
}
return b;
}
但到了PAT上就显示部分答案错误,具体情况是:
1.溢出 正确
2.原数组中存在与要插入的数相等的数据 正确
3.插入最大值 失败
4.插入最小值 失败
萌新,代码应该写得比较烂,大家凑合着看,感激不尽
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
1条回答
为你推荐
- pat乙级1012,第一个测试点,为什么A4是9.7啊,希望大神指点(C语言)
- c语言
- 1个回答
- pat A1080 Graduate Admission 测试点四为什么段错误?
- PAT 后天 能帮忙纠正一下我的代码吗
- PAT乙级1004不使用结构体时全测试点格式错误
- c++
- 1个回答
- PAT 念数字。(C++) 请问我的代码出现了哪种错误 ,能帮忙告一下吗
- 如何在CodeIgniter中发生致命错误后操纵数据库?
- codeigniter
- php
- 1个回答
- pta 1005 的最后一个测试点为什么通过不了?
- PAT1009题:为什么不能用getline函数。。。
- c++
- 1个回答
- C库函数strstr实现中为什么要用新建const char*变量代替参数?
- PAT1008数组元素循环右移问题 (20 分) 为什么只有部分通过
- c++
- 2个回答
- C++段错误的问题,题目为PAT甲级1095
- PAT考试1007. 素数对猜想 (20) VS上正常运行,但不能AC
- PAT1045运行超时我知道原因,还提示格式错误是哪里有问题
- c
- 2个回答
- PAT1020月饼,为什么市场需求need每次还都是20 呢?
- c
- pat
- 1个回答
- PAT找不到段错误 请指教
- 设计
- pat
- c++
- 段错误
- 2个回答
- 逆转链表的小代码,求问错误在哪里呐~
- 链表
- 4个回答
- PAT乙级1005题第四个测试点答案错误是什么原因,求大神指导(c语言编写)
- c
- 2个回答
- PAT乙级1012. 数字分类问题总是部分正确怎么办啊?
- pat
- 1个回答
- pat乙级1070代码有测试点过不了,求教
- acm
- ava基础 代码错误
- 2个回答
- PAT上的一道水题,网上提交总是提示运行超时
- c
- pat
- 3个回答