C++如何用指针输出冒泡排序法每一趟的排序结果?

C++如何用指针输出冒泡排序法每一趟的排序结果。

要用swap(int*pa,int*pb){inttemp;temp=*pa;*pa=*pb;*pb=temp;}...

蝴蝶不菲
浏览 1157回答 1
1回答

GCT1015

冒泡法排序就是2个循环,判断大小,如果需要就交换两者的位置。每一趟的结果,就是把数据显示出来,用指针显示,就是传入第一个指针,然后每次指针加1就是下一个数据了。全部代码如下:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include&nbsp;<stdio.h>#define&nbsp;NUMS&nbsp;10&nbsp;swap(int&nbsp;*pa,int&nbsp;*pb){&nbsp;&nbsp;&nbsp;/*&nbsp;交换两个数字&nbsp;*/int&nbsp;temp;temp&nbsp;=&nbsp;*pa;*pa&nbsp;=&nbsp;*pb;*pb&nbsp;=&nbsp;temp;}&nbsp;showarray(int&nbsp;*aa){&nbsp;&nbsp;&nbsp;/*&nbsp;显示当前的顺序&nbsp;*/&nbsp;&nbsp;&nbsp;int&nbsp;i;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i<NUMS;&nbsp;i++)&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d&nbsp;",&nbsp;*aa);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa++;&nbsp;&nbsp;&nbsp;/*&nbsp;指向下一个数据&nbsp;*/&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;printf("\n");}&nbsp;main(){&nbsp;&nbsp;&nbsp;int&nbsp;aa[NUMS];&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,j;&nbsp;&nbsp;&nbsp;&nbsp;printf("请输入10个需要排序的数,空格分开\n");&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i<10;&nbsp;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&nbsp;&aa[i]);&nbsp;&nbsp;&nbsp;&nbsp;printf("需要排序的数据是:\n");&nbsp;&nbsp;&nbsp;showarray(aa);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("开始排序:\n");&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i<NUMS;&nbsp;i++)&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("第%d遍:",&nbsp;i+1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j=i+1;&nbsp;j<NUMS;&nbsp;j++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(aa[i]>aa[j])&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap(&aa[i],&nbsp;&aa[j]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;showarray(aa);&nbsp;&nbsp;&nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP