数组排序与二维数组

//

//  main.c

//  数组排序与二维数组

//

//  Created by zhangxueming on 15/6/1.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#include <stdio.h>



//冒泡排序(从小到大)

//9 7 8 5 3 --> 3 5 7 8 9

//第一次排序

//7 9 8 5 3

//7 8 9 5 3

//7 8 5 9 3

//7 8 5 3 9



//第二次排序

//7 8 5 3 9

//7 5 8 3 9

//7 5 3 8 9



//第三次排序

//5 7 3 8 9

//5 3 7 8 9



//第四次排序

//3 5 7 8 9

#define LEN  5



//int main(int argc, const char * argv[]) {

//    int a[LEN]={};

//    //输入数组

//    for (int i=0; i<LEN; i++) {

//        scanf("%d", &a[i]);

//    }

//    //冒泡排序

//    for (int i=0; i<LEN-1; i++) {

//        for (int j=0; j<LEN-i-1; j++) {

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

//                int temp= a[j];

//                a[j]=a[j+1];

//                a[j+1]=temp;

//            }

//        }

//    }

//    //遍历输出

//    for (int i=0; i<LEN; i++) {

//        printf("%d ", a[i]);

//    }

//    printf("\n");

//    return 0;

//}



//选择排序

//9 7 8 5 3   k=4   a[k] a[i]



//第一次排序

//3 7 8 5 9



//第二次排序

//3 5 8 7 9



//第三次排序

//3 5 7 8 9



//第四次排序

//3 5 7 8 9





int main(int argc, const char *argv[])

{

    int a[LEN]={};

    //输入数组

    for (int i=0; i<LEN; i++) {

        scanf("%d", &a[i]);

    }

    //选择排序

    for (int i=0; i<LEN-1; i++) {

        int k=i;//记录最小值下标

        for (int j=i+1; j<LEN; j++) {

            if (a[k]>a[j]) {

                k=j;

            }

        }

        if (k!=i) {

            int temp = a[k];

            a[k]=a[i];

            a[i]=temp;

        }

    }

    //输出数组

    for (int i=0; i<LEN; i++) {

        printf("%d ", a[i]) ;

    }

    printf("\n");

    return 0;

}



//插入排序



//9 7 8 5 3  int temp = 7;

//第一次排序

//9 9 8 5 3

//7 9 8 5 3



//第二次排序  temp = 8;

//7 9 9 5 3

//7 8 9 5 3



//第三次排序 temp = 5;

//7 8 9 9 3

//7 8 8 9 3

//7 7 8 9 3

//5 7 8 9 3



//第四次排序 temp = 3;

//5 7 8 9 9

//5 7 8 8 9

//5 7 7 8 9

//5 5 7 8 9

//3 5 7 8 9



//int main(int argc,const char *argv[])

//{

//    int a[LEN]={};

//    for (int i=0; i<LEN; i++) {

//        scanf("%d", &a[i]);

//    }

//    //插入排序

//    for (int i=0; i<LEN-1; i++) {

//        int temp = a[i+1];

//        int j=i;

//        //控制移位

//        while (a[j]>temp && j>=0) {

//            a[j+1]=a[j];

//            j--;

//        }

//        //插入元素

//        a[j+1]=temp;

//    }

//    for (int i=0; i<LEN; i++) {

//        printf("%d ", a[i]);

//    }

//    printf("\n");

//    

//    return 0;

//}



//int a[5]



//int a[3][4][5]



//二维数组:由一维数组作为元素构成的一维数组



//int a[3][4];

//a[0] a[1] a[2] 是由4个int类型元素构成的数组



//二维数组的初始化



//int main(int argc,const char *argv[])

//{

//    int a[3][2]={1,[2][0]=3,4};

//    for (int i=0; i<3; i++) {

//        for (int j=0; j<2; j++) {

//            printf("%d ", a[i][j]);

//        }

//        printf("\n");

//    }

//    return 0;

//}



//int main(int argc, const char *argv[])

//{

//    int a[3][4]={{1,2,3,4},

//                { 5,6,7,8},

//                { 9,10,11,12}};

//    

//    for (int i=0; i<3; i++) {

//        for (int j=0; j<4; j++) {

//            printf("%4d", a[i][j]);

//        }

//        printf("\n");

//    }

//    return 0;

//}



//1

//1 1

//1 2 1

//1 3 3 1

//1 4 6 4  1

//1 5 10 10 5 1



//int main(int argc,const char *argv[])

//{

//    int a[10][10]={};

//    for (int i=0; i<10; i++) {

//        for (int j=0; j<=i; j++) {

//            if (j==0 || j==i) {

//                a[i][j]=1;

//            }

//            else

//            {

//                a[i][j]=a[i-1][j]+a[i-1][j-1];

//            }

//        }

//    }

//    for (int i=0; i<10; i++) {

//        for (int j=0; j<=i; j++) {

//            printf("%4d", a[i][j]);

//        }

//        printf("\n");

//    }

//    return 0;

//}



//12 34 5 6 7





//int main(int argc,const char *argv[])

//{

//    int a[100]={};

//    int cnt = 0;//统计输入数组元素个数

//    for (int i=0; i<100; i++) {

//        scanf("%d", &a[i]);

//        cnt++;

//        if (getchar()=='\n') {

//            break;

//        }

//    }

//    printf("cnt = %d\n", cnt);

//    return 0;

//}





//int main(int argc,const char *argv[])

//{

//    char str[100]={};

//    int cnt=0;

//    for (int i=0; i<100; i++) {

//        //scanf("%c", &str[i]);

//        str[i]=getchar();

//        if (str[i]=='\n') {

//            str[i]='\0';

//            break;

//        }

//        cnt++;

//    }

//    printf("cnt = %d\n", cnt);

//    return 0;

//}

 

你可能感兴趣的:(二维数组)