c语言温习-关于冒泡排序的一点理解

#######################第6章---------利用数组处理批量数据的感悟#############################


冒泡排序 起泡排序的一点想法

先贴上代码部分

#include <stdio.h>

int main()

{

 int a[10],i,j,t;//定义要排序的10个数据,循环控制变量,暂存变量

printf("please input ten numbers\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);//接受终端输入的十个数据,注意标识符&a[i]

printf("\n");

for(i=0;i<9;i++);  //之所以有两个循环控制变量 是因为冒泡排序需要1重复进行多次2每次需要交换多少组数据

   for(j=0;j<9-i;j++)  //内循环体控制交换个数,i<9因为10组数据只需要排序9次,j<9-i因为每排序一次就有一个数据沉底

 {

    if(a[j]>a[j+1])

     {

      t=a[j];

      a[j]=a[i][j+1];      //内层数据交换

      a[j+1]=t;    

     }

 }

printf("the sorted number is:\n");

for(i=0;i<10;i++)

{

  printf("%d",a[i]);   //冒泡排序结束后进行输出

}

printf("\n");

 return 0;

}

以上是冒泡排序输出问题的总结,最初重新码代码的时候仍然将冒泡排序的代码和二维数组打擂代码搞混,作为一名弱电大四学生,着实不应该,弟弟自己拷打自己10min


-----------------------------------------------分割线--------------------------------------------------------------------------

以下是二维数组找最大值输出行列代码,贴出来进行对比


#include <stdio.h>

int main()

{

  int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};

  int i,j.row,colum,max;   //对需要的循环控制变量 最大值的行列及最大值进行存储变量定义

  max=a[0][0];   //定义一个打擂台的初始选手

  for(i=0;i<3;i++)  //行变量循环

   for(j=0;j<4;j++) //列变量循环

    {

         if(a[i][j]>max)

         {

          max=a[i][j];

          row=i;    //你行你先上

          colum=j;

         }

    }


printf("the max is%d\nthe row is %d\nthe colum is %d\n",max,row,colum);  //打印输出正确结果


return 0;

}


猜你喜欢

转载自blog.csdn.net/moxiaoxuan123/article/details/52506603
今日推荐