假设第一个参数为in参数,每二个参数为out参数:
variable
x
number;
//定义一个绑定变量
exec
过程(1,:x)
//1为输入参数,x为输出参数,过程执行后x就得到输出值了。
x
//看结果
def remove_section(alist,start,end):
if start > len(alist):
# 开始位置越界返回原串
return alist[:]
elif end > len(alist):
# 结束位置越界
return alist[:start]
else:
a = alist[:start]
aextend(alist[end:])
return a
你这代码有以下错误要改:
onlist(Sqlist L,int len)函数中,
1、if(len+n>=MAXSIZE)要改成if(len+n>=MAXSIZE && n>len+1)
顺序表不光数组不能越界,也不能跳越赋值,比如当前len是3,那么你最多只能赋值第4个元素,不能直接赋值第5个元素。
2、for(j=len-1;j>point-1;j--)要改成for(j=L->length-1;j>=point-1;j--)。
len是最初传递进来的长度,而你在循环中每次长度都在自增,所以不能用len(其实你所有函数都没必要传len,因为已经把结构传递进来了)
>要改成>=,否则point-1位置的元素就没有移位。少了一次移位。
3、putlist(&L,L->length);要改成putlist(L,L->length);
这里L已经不是结构体变量了,而是结构指针。
#include <stdioh>
#include <stdlibh>
#define MAXSIZE 100
typedef int Elemtype;
typedef struct Sqlist
{
Elemtype data[MAXSIZE];
int length;
}Sqlist;
void inlist(Sqlist L,int len);
void putlist(Sqlist L,int len);
void onlist(Sqlist L,int len);
int main()
{
Sqlist L; Llength=0;
int len,i,j;
printf("请输入线性表长度:");
scanf("%d",&len);
inlist(&L,len);
putlist(&L,len);
onlist(&L,len);
}
void inlist(Sqlist L,int len)
{
int i;
if(len<1||len>MAXSIZE)
printf("输入不规范");
else
{
printf("输入元素:");
for(i=0;i<len;i++)
scanf("%d",&L->data[i]);
L->length=len;
}
}
void putlist(Sqlist L,int len)
{
int i;
printf("所输入的元素为:");
for(i=0;i<len;i++)
printf("%d ",L->data[i]);
}
void onlist(Sqlist L,int len)
{
int n,i,j,point;
printf("\n插入个数:");
scanf("%d",&n);
if(len+n>=MAXSIZE && n>len+1)
printf("插入失败!\n");
else
{
printf("插入成功!\n");
for(i=0;i<n;i++)
{
printf("\n插入的第%d个数的位置:",i+1);
scanf("%d",&point);
printf("\n插入的数是:");
// for(j=len+n;j>point-1;j--)
for(j=L->length-1;j>=point-1;j--)
L->data[j+1]=L->data[j];
scanf("%d",&L->data[point-1]);
(L->length)++;
putlist(L,L->length);
}
}
}
以上就是关于oracle plsql in list作为参数怎么传全部的内容,包括:oracle plsql in list作为参数怎么传、python 移除list里的元素、关于C语言的顺序表 插入功能完成后不能输出正确数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)