用指针实现选择法排序问题

ftefzs ftefzs 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
从键盘输入8个数,用选择法按由大到小的顺序排列
为什么程序这样写能编译通过,但是执行时,输入参数后,提示出现“遇到问题需要关闭”
# include<stdio.h>

void main()
{ int data[8],*p,*p2,*k,temp,i;

p=data;
for(i=0;i<8;i++)
{ scanf("%d",p);
p++; }

for(p=data;p<data+8-1;p++)
{ k=p;
for(p2=p+1;p2<data+8;p2++)
if(*p<*p2) k=p2;
if(k!=p)
{temp=*p;
*p=*p2;
*p2=temp;}
}

for(i=0,p=data;i<8;i++,p++)
printf("%3d",*p);

}

问题出在哪里呢?

但是这样写就可以:
# include<stdio.h>
# include<string.h>
void main()
{ int data[8],*p,*p2,temp,i;

p=data;
for(i=0;i<8;i++)
{ scanf("%d",p);
p++; }

for(p=data;p<data+8-1;p++)
{ for(p2=p+1;p2<data+8;p2++)
if(*p<*p2)
{temp=*p;
*p=*p2;
*p2=temp;}
}

for(i=0,p=data;i<8;i++,p++)
printf("%3d",*p);
printf("\n");

}
...全文
评论 6
收藏 已收藏
分享
返回顶部
ftefzs
C语言 70,039 成员 243,237 内容