二维码
微世推网

扫一扫关注

当前位置: 首页 » 快报资讯 » 今日快报 » 正文

C语言___用指针对10个数排序

放大字体  缩小字体 发布日期:2022-12-11 16:14:02    作者:李奕    浏览次数:198
导读

例31:C语言用指针方法对10个整数按由大到小顺序排序。解题思路:在主函数中定义数组,用来存放10个整数,定义int *型指针变量p指向a[0],定义函数sort将数组中得元素按由大到小排序。排序函数:voidsort(intx[],intn)//自定义排序函数{inti,j,k,t;//定义整型变量for(i=0;i9;i++)//外层for循环{k=i;//把i得值赋给kfor(j=1+i

例31:C语言用指针方法对10个整数按由大到小顺序排序。

解题思路:在主函数中定义数组,用来存放10个整数,定义int *型指针变量p指向a[0],定义函数sort将数组中得元素按由大到小排序。

排序函数:

voidsort(intx[],intn)//自定义排序函数{inti,j,k,t;//定义整型变量for(i=0;i<9;i++)//外层for循环{k=i;//把i得值赋给kfor(j=1+i;j<10;j++)//内层for循环{if(x[j]>x[k])//如果前一个数大{k=j;}}t=x[k];//赋值x[k]=x[i];x[i]=t;}}

源代码演示:

#include<stdio.h>//头文件intmain()//主函数{voidsort(intx[],intn);//函数声明inti,*p,a[10];//定义整型变量、指针变量、数组p=a;//读者需要注意这里a赋值printf("请输入十个数:");//提示语句for(i=0;i<10;i++)//输入10个数{scanf("%d,",p++);//注意每个数之间用英文逗号隔开}p=a;//读者需要注意这里a赋值sort(a,10);//调用sort排序printf("由大到小排序后得:");//提示语句for(p=a,i=0;i<10;i++)//输出排序后得数{printf("%d ",*p);p++;}printf("\n");//换行return0;//主函数返回值为0}voidsort(intx[],intn)//自定义排序函数{inti,j,k,t;//定义整型变量for(i=0;i<9;i++)//外层for循环{k=i;//把i得值赋给kfor(j=1+i;j<10;j++)//内层for循环{if(x[j]>x[k])//如果前一个数大{k=j;}}t=x[k];//赋值x[k]=x[i];x[i]=t;}}

编译运行结果如下:

请输入十个数:0,4,6,1,8,12,78,34,67,4由大到小排序后得:78673412864410--------------------------------Process exited after22.77secondswithreturnvalue0请按任意键继续. . .

读者需要注意上述小林scanf函数用得逗号,注意是英文逗号:

scanf("%d,",p++);

在上一节小林说过,给指针变量赋得是地址,如下:

inti,*p,a[10];p=a;

但上述代码中却是这样赋值:

inti,*p,a[10];p=&a;

是因为我定义得a就是数组,在C语言中,数组名可以表示地址,因此不用再加取地址符&,读者需要了解。

 
(文/李奕)
打赏
免责声明
• 
本文为李奕原创作品•作者: 李奕。欢迎转载,转载请注明原文出处:http://www.udxd.com/kbzx/show-111295.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们邮件:weilaitui@qq.com。
 

Copyright©2015-2023 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈