为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
蝴蝶不菲 2018-10-08 11:07:29
C++如何用指针输出冒泡排序法每一趟的排序结果。要用swap(int*pa,int*pb){inttemp;temp=*pa;*pa=*pb;*pb=temp;}...
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

冒泡法排序就是2个循环,判断大小,如果需要就交换两者的位置。

每一趟的结果,就是把数据显示出来,用指针显示,就是传入第一个指针,然后每次指针加1就是下一个数据了。

全部代码如下:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include <stdio.h>#define NUMS 10 swap(int *pa,int *pb){   /* 交换两个数字 */int temp;temp = *pa;*pa = *pb;*pb = temp;} showarray(int *aa){   /* 显示当前的顺序 */   int i;   for (i=0; i<NUMS; i++)   {      printf("%d ", *aa);      aa++;   /* 指向下一个数据 */   }   printf("\n");} main(){   int aa[NUMS];    int i,j;    printf("请输入10个需要排序的数,空格分开\n");   for (i=0; i<10; i++)     scanf("%d", &aa[i]);    printf("需要排序的数据是:\n");   showarray(aa);       printf("开始排序:\n");   for (i=0; i<NUMS; i++)   {     printf("第%d遍:", i+1);     for (j=i+1; j<NUMS; j++)     {        if (aa[i]>aa[j])           swap(&aa[i], &aa[j]);     }     showarray(aa);   }}



查看完整回答
反对 回复 2018-11-06
  • 1 回答
  • 0 关注
  • 1156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信