A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 尾尾 中级黑马   /  2015-9-28 21:34  /  739 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //数组思考练习
  2. //int arr[6]={1,2,4,3,8,5};
  3. //1编写一个函数求这个数组的最值
  4. //2给这个数组从大到小排序

  5. #include<stdio.h>
  6. int max(int a[],int n);         //获取数组的最大值 max(数组 数组长度)
  7. int bubbleSort(int b[],int m);  //冒泡排序 bubbleSort(数组 数组长度)
  8. int selectSort(int c[],int n);  //选择排序 selectSort(数组 数组长度)

  9. int main(){
  10.     int arr[6]={1,2,4,3,8,5};
  11.     int len=sizeof(arr)/sizeof(int);
  12.     max(arr,len);
  13.     bubbleSort(arr,len);
  14.     int arr2[9]={1,2,4,3,8,5,6,7,9};
  15.     int len2=sizeof(arr2)/sizeof(int);
  16.     selectSort(arr2,len2);
  17.     return 0;
  18. }

  19. int max(int a[],int n){//求数组的最大值
  20.     int max=0;//用来存最大值
  21.     for (int i=0; i<n; i++) {
  22.         if (a[i]>max) {//若当前值大于max,则将其赋值给max
  23.             max=a[i];
  24.         }
  25.     }
  26.     printf("最大值是%d\n",max);
  27.     return 0;
  28. }
  29. int bubbleSort(int b[],int m){//冒泡排序
  30.     int tem=0;
  31.     printf("排序前:\n");
  32.     for (int j=0; j<m; j++) {
  33.         printf("%d\t",b[j]);
  34.     }
  35.     printf("\n");
  36.    
  37.     for (int i=0; i<m; i++) {
  38.         for (int j=m-1; j>i; j--) {
  39.             if (b[j]>b[j-1]) {
  40.                 tem=b[j];
  41.                 b[j]=b[j-1];
  42.                 b[j-1]=tem;
  43.             }
  44.         }
  45.     }
  46.     printf("冒泡排序后:\n");
  47.     for (int j=0; j<m; j++) {
  48.         printf("%d\t",b[j]);
  49.     }
  50.     printf("\n");
  51.     return 0;
  52. }

  53. int selectSort(int c[],int n){//选择排序
  54.     int tem;
  55.     int num;
  56.     printf("排序前:\n");
  57.     for (int j=0; j<n; j++) {
  58.         printf("%d\t",c[j]);
  59.     }
  60.     printf("\n");
  61.     printf("选择排序后:\n");
  62.     for (int i=0; i<n; i++) {
  63.         tem=c[i];
  64.         for (int j=n-1; j>i; j--) {
  65.             if (c[j]>tem) {//若当前值大于tem,则将其赋值给tem
  66.                 tem=c[j];
  67.                 c[j]=c[i];
  68.                 c[i]=tem;
  69.             }
  70.         }
  71.     }
  72.     for (int k=0; k<n; k++) {
  73.         printf("%d\t",c[k]);
  74.     }
  75.     printf("\n");
  76.     return 0;
  77. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马