H_C_4 1

 

#include <stdio.h>

#include <stdbool.h>

#include <stdlib.h>

#include <time.h>

 

struct Year

{

    int year;

    int month;

    int day;

};

 

bool leapYear(int aYear);

bool leapYear(int aYear)

{

    bool s = false;

    if (( aYear % 4 == 0 && aYear % 100 !=0)||(aYear % 400 == 0))

    {

        s = true;

    }

    

    return s;

}

 

int numOfMonth(int year,int mon);

int numOfMonth(int year,int mon)

{

    int sum = 0;

    switch (mon)

    {

        case 1:

        case 3:

        case 12:

        case 5:

        case 7:

        case 8:

        case 10:

        {

            sum = 31;

            break;

        }

        case 2:

        {

            if (leapYear(year))

            {

                sum = 29;

            }

            else

            {

                sum = 28;

            }

            break;

        }

        default:

        {

            sum = 30;

            break;

        }

    }

    

    return sum;

}

 

/*

 遍历输出数组中的元素

 */

void print(int a[],int n);

void print(int a[],int n)

{

    for (int i = 0; i<n; i++)

    {

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

    }

}

 

 

void revort(int a[],int n);

void revort(int a[],int n)

{

    int tmp;

    for (int i = 0; i < n / 2; i++)

    {

        tmp = a[i];

        a[i] = a[n-1-i];

        a[n-1-i] = tmp;

    }

}

 

void pawpaw(int a[],int n);

void pawpaw(int a[],int n)

{

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

    {

        int tmp;

        for (int j = 0; j < n-1-i; j++)

        {

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

            {

                tmp =a[j];

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

                a[j+1] = tmp;

            }

        }

    }

}

 

void insertNum(int a[],int len,int num);

void insertNum(int a[],int len,int num)

{

    int k = 0;

    int n = len - 1;// n代表没添加num之前的长度

    int i;

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

    {

        if (num > a[i])

        {

            continue;

        }

        // 找到要插入的位置

        k = i;

        printf("k = %d",k);

        break;

    }

    

    // 后移

    for (int j = n; j > k; j--)

    {

          a[j] = a[j-1];

    }

    

    // 赋值

    a[k] = num;

}

 

 

void chiose(int a[],int n);

void insert(int a[],int n);

 

 

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

{

 

    

    

    

    // 1

    int a[4] = {8,6,4,1};

    revort(a, 4);

    print(a, 4);

    

    // 2

    struct Year y = {2013,3,1};

    int allDay = 0;

    for (int i = 1; i < y.month; i++)

    {

        allDay += numOfMonth(y.year, y.month);

    }

    allDay+=y.day;

    printf("allDay = %d",allDay);

    

    // 3

    char cArr[] = {'r','e','p','u','t','a','t','i','o','n'};

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

    {

        int tmp;

        for (int j = 0; j < 10-1-i; j++)

        {

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

            {

                tmp =cArr[j];

                cArr[j] = cArr[j+1];

                cArr[j+1] = tmp;

            }

        }

    }

    

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

    {

        printf("%c  ",cArr[i]);

    }

    

    //

    srand((unsigned)time(NULL));

    int rodmArr[20] = {0};

    for (int i = 0; i<20; i++)

    {

        int r = rand() % (50 + 1 - 10) + 10;

        rodmArr[i] = r;

    }

    

    printf("\n");

    print(rodmArr, 20);

    

    // 冒泡排序

    pawpaw(rodmArr, 20);

    

    printf("\n");

    print(rodmArr, 20);

    

    printf("\n");

    int arr[5] = {3,1,5,7,0};

    

    insertNum(arr, 5, 4);

    printf("\n");

    print(arr, 5);

    

    printf("\n");

    int ary[] = {3,5,4,2};

    //chiose(ary, 4);

    insert(ary, 4);

    print(ary, 4);

    

    return 0;

}

 

// 选择排序

void chiose(int a[],int n)

{

    int i,j,k,tmp;

    

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

    {

        k = i;

        for (j = i+1; j < n; j++)

        {

            if(a[j] < a[i])

            {

                k = j;  // k始终代表最小的元素的下标

                

                if (k!=i)

                {

                    tmp = a[i];

                    a[i] = a[k];

                    a[k] = tmp;

                }

            }

            

 

        }

    }

}

 

void insert(int a[],int n)

{

    int i,j,tmp;

    for (i = 1; i<n; i++)

    {

        tmp = a[i];

        j = i - 1;

        while (tmp < a[j] && j>=0)

        {

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

            j--;

        }

        

        a[j+1] = tmp;

    }

}

 

posted @ 2013-02-27 17:38  沉默的影子  阅读(169)  评论(0)    收藏  举报