C语言,用VC++6.0编写程序,出现的错误情况,指针变量

c语言,用VC++6.0编写的下列程序:#include<stdio.h>voidmain(){voidsort(intx[],intn);int*p,i,a[10];p... c语言,用VC++6.0编写的下列程序:
#include<stdio.h>
void main()
{
void sort(int x[],int n);
int * p,i,a[10];
p=a;
for(i=0;i<10;i++)
scanf("%d",* p++);
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{
printf("%d ",*p);
p++;
}
}
void sort(int x[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(x[i]>x[k])
k=j;
if(k!=j)
{
t=x[i];
x[i]=x[k];
x[k]=t;
}
}
}
编译时,没有错误

执行后,输入了10个整数,按Enter键以后,显示

最后显示

没有执行我要的排序命令,只是输出了我输入的10个整数,只是在编写的程序中带有指针变量类型符号 * 的就会出现这种情况,这事怎么回事呢?
展开
 我来答
水流山清
2013-08-17
知道答主
回答量:26
采纳率:0%
帮助的人:16.5万
展开全部
有不少错误!你这个应该是一个选择排序法的问题!第八行*p++改为p++;还有那个sort函数出错了
在内循环中的第一个if语句应该成“if(x[j]>x[k])"第二个if语句应改成"if(k!=i)"这样就没问题了!
358463121
2013-08-17 · TA获得超过505个赞
知道小有建树答主
回答量:423
采纳率:0%
帮助的人:384万
展开全部
把*p++改成p++ 那地方的参数应该是地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式