永发信息网

c语言用指针写选择排序法

答案:2  悬赏:10  手机版
解决时间 2021-03-07 02:21
c语言用指针写选择排序法
最佳答案
你的程序没错,只不过这不是选择法,是冒泡发,选择发如下:
void sort(int *a,int n)
{
int i,j,t,temp;
for(i=0;i {
t=i;/初始定义t为未排序数的第一个
for(j=i+1;j {

if(*(a+t)<*(a+j))/挑选出更大的数的位置,把他赋给t
t=j;
}
temp=*(a+i); /t是最大的那个数的位置,把他和未排序的第一个交换位置
*(a+i)=*(a+t);
*(a+t)=temp;
}
}
main()
{
int i,a[10],*p=a;
printf("input zhe array a:\n");
for(i=0;i<10;i++)
scanf("%d",p++);
printf("\n");
p=a;
sort(p,10);
p=a;
printf("zhe sort array is:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
getch();
}
全部回答
1. 这叫求最值问题,而不是排序 2. 指针在定义的时候可以同时初始化,没有初始化或赋值的指针是不能访问的,比如你程序中的pmax和pmin 3 第二个for语句有问题,无限循环,既然用i做增量,又为何要p++? 4 保持良好的编码风格,一行代码只做一件事 修改如下 #include void main() { int a[10] ; int i = 0 ; int *p = a ; int *pmax = a ; int *pmin = a ; for(i = 0; i < 10; i++) scanf("%d", p++); p = a ; for(i=0; i<10; p++, i++) { if(*pmax < *p) pmax = p ; if(*pmin > *p) pmin = p ; } printf("%d\t%d\n", pmax, pmin); getchar(); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
对心肌收缩力抑制作用最强的钙离子通道阻滞剂
烽火战国有什么方法提升五星英雄的好感度??
南京至准北市时间表
绝味鸭脖吉利NO.2地址有知道的么?有点事想过
无色酚酞遇碱变成()。
excel每次拉公式都会跳出打开文件的对话框?
狗狗便便时为什么总看着主人
“每次”看书脑子都会想其它的事,分心,所以
如何在VAGAA上查看别人共享的资源
现在的神奇宝贝为什么只有中文版的了…优酷土
金马娱乐城这个地址在什么地方,我要处理点事
足加世木读什么
伊的家的谷物膳食纤维片和类胡萝卜素多少钱?
求类似于花开若相惜,花落莫相离的情侣网名
【道学】《周易》该归为儒学?还是道学?1.儒家
推荐资讯
兔子的守护神
想买个0首付手机,请问一下,不给钱不还款会
容城兴荣驾校外地报名费多少钱
请问1000万元的承兑汇票,时间是180天,如果
喝可乐能治尿道结石吗?
车辆改装刹车对保险理赔有什么影响吗?
家的意大利语作文
创新5.1声卡录音很闷的感觉,原来很好,自己
祁东县永达商砼有限公司这个地址在什么地方,
8岁男孩僵尸附体 小镇盛传吸血鬼 4 出来了没
什么手机容易root???
钢筋机械连接方法分类及适用范围有哪些
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?