c++排序函数
答案:5 悬赏:20
解决时间 2021-02-22 06:25
- 提问者网友:风月客
- 2021-02-21 20:26
c++排序函数
最佳答案
- 二级知识专家网友:我住北渡口
- 2021-02-21 21:19
#include
int *p(int x[],int y)
{
int i,j,a;
for(i=0;i {
for(j=i;j {
if(x[i] {
a=x[i];
x[i]=x[j];
x[j]=a;
}
}
}
return x;
}
void main()
{
int x[10],i;
int *tmp = NULL;
for(i=0;i<10;i++)
{
scanf("%d",&x[i]);
}
tmp = p(x,10); //这里传参,不需要[10],数组名即可,还有x不能作为左值,这里我定义了tmp来接收返回的数组
for(i=0;i<10;i++)
{
printf("%d ",tmp[i]);
}
}
int *p(int x[],int y)
{
int i,j,a;
for(i=0;i
for(j=i;j
if(x[i]
a=x[i];
x[i]=x[j];
x[j]=a;
}
}
}
return x;
}
void main()
{
int x[10],i;
int *tmp = NULL;
for(i=0;i<10;i++)
{
scanf("%d",&x[i]);
}
tmp = p(x,10); //这里传参,不需要[10],数组名即可,还有x不能作为左值,这里我定义了tmp来接收返回的数组
for(i=0;i<10;i++)
{
printf("%d ",tmp[i]);
}
}
全部回答
- 1楼网友:毛毛
- 2021-02-22 00:33
scanf("%d",&x[i]);
这句话问题可大了,怎么可以输入地址呢?
你定义的函数的返回值应该是一个指针,但你把数组给返回了,这是什么意思?
这句话问题可大了,怎么可以输入地址呢?
你定义的函数的返回值应该是一个指针,但你把数组给返回了,这是什么意思?
- 2楼网友:动情书生
- 2021-02-21 22:54
楼上的,不懂就不要乱说,scanf("%d",&x[i]); 这句没有问题
x=p(x[10],10);这句应该为x=p(x,10);
x=p(x[10],10);这句应该为x=p(x,10);
- 3楼网友:往事隔山水
- 2021-02-21 22:47
我暂时保留我的看法!
- 4楼网友:归鹤鸣
- 2021-02-21 22:36
传入的实参是int型变量, 即:x[10]
1:x[10]访问的为数组的第11个元素,数组访问从下标0开始
2:你定义的函数int *p(int x[], int y)说明传入的实参应该为int型指针或者int型一维数组名,而不是单一的某个元素,即p(x[10], 10)错误
3:x是定义的int型一维数组名,是无法改变它的值,即不能把函数p的返回值赋值给x
1:x[10]访问的为数组的第11个元素,数组访问从下标0开始
2:你定义的函数int *p(int x[], int y)说明传入的实参应该为int型指针或者int型一维数组名,而不是单一的某个元素,即p(x[10], 10)错误
3:x是定义的int型一维数组名,是无法改变它的值,即不能把函数p的返回值赋值给x
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯