• 数组排序与二维数组


    //
    //  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("
    ");
    //    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("
    ");
    //    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("
    ");
    //    
    //    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("
    ");
    //    }
    //    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("
    ");
    //    }
    //    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("
    ");
        }
        return 0;
    }
  • 相关阅读:
    用ant发布项目版本
    11 款用于优化、分析源代码的Java工具 转载
    第四章 数学运算
    jdbc for mysql demo
    第二章 PHP基础
    第七章 自定义函数
    第五章 数组
    jmock2.5基本教程 转载
    jdbc for mssql2005 demo
    oracle实战第三天事务处理与函数
  • 原文地址:https://www.cnblogs.com/0515offer/p/4544480.html
Copyright © 2020-2023  润新知