#include “includes.h”
int arrays[20];
    void swap(int& a, int& b)
    
    {
    
    
    int temp;
    
    temp = a;
    
    a = b;
    
    b = temp;
    
    return;
    
    }
   
    void  swap_str(char* &a, char* &b)
    
    {
    
    
    char *temp;
    
    temp = a;
    
    a = b;
    
    b = temp;
    
    return;
    
    }
    
    void Question6_1(int &a,int &b,int &c)
    
    {
    
    
    cout << “6-1” << endl;
    
    if (a > b)
    
    swap(a, b);
    
    if (b > c)
    
    swap(b, c);
    
    if (a > c)
    
    swap(a, c);
    cout << a << b << c<<endl;
    
    return;
    
    }
   
    void Question6_2(char *a, char *b, char *c)
    
    {
    
    if (strcmp(a, b)> 0)
    
    swap_str(a, b);
    
    if (strcmp(a, c) > 0)
    
    swap_str(a, c);
    
    if (strcmp(b, c) > 0)
    
    swap_str(b, c);
    
    cout << a << b << c << endl;
    
    return;
    
    }
   
    void input_10_number()
    
    {
    
    
    int i = 0;
    
    for (i = 0; i < 10; i++)
    
    {
    
    
    cin >> arrays[i];
    
    }
    
    }
   
    void deal_10_word()
    
    {
    
    
    Position max_number, min_number;
    
    max_number.value = 0;
    
    max_number.index = 0;
    
    min_number.value = 0;
    
    min_number.index = 0;
    
    int i = 0;
    
    for (i = 0; i < 10; i++)
    
    {
    
    
    if (arrays[i] > max_number.value)
    
    {
    
    
    max_number.value = arrays[i];
    
    max_number.index = i;
    
    }
    if (arrays[i] <= min_number.value)
    
    {
    
    
    min_number.value = arrays[i];
    
    min_number.index = i;
    
    }
    }
    
    swap(arrays[0], arrays[min_number.index]);
    
    swap(arrays[9], arrays[max_number.index]);
    
    }
   
    void print_10_words()
    
    {
    
    
    int i;
    
    for (i = 0; i < 10; i++)
    
    {
    
    
    cout << arrays[i] << ” “;
    
    }
    
    cout << endl;
    
    return;
    
    }
    
    void Question6_3()
    
    {
    
    
    input_10_number();
    
    deal_10_word();
    
    print_10_words();
    
    }
   
    void move_words(int a[],int position)
    
    {
    
    
    int recv_array[10];
    
    int temp_array[10];
    
    int recv_position;
    
    recv_position = position;
    
    for (int i = 0; i < 10; i++)
    
    {
    
    
    recv_array[i] = a[i];
    
    }
    
   
}
    void Question6_4(int m)
    
    {
    
    
    int a[10] = { 0,1,2,3,4,5,6,7,8,9 };
    
    int b[100];
    
    int i = 0,b_index = 0;
    
    int length = (sizeof(a) / sizeof(a[0]));
    
    for (i = 0; i < length; i++)
    
    {
    
    
    b_index = ((i + m) % length);
    
    b[b_index] = a[i];
    
    }
    
    cout << “m=” << m << endl;
    
    for (i = 0; i < length; i++)
    
    {
    
    
    cout << b[i] << ” “;
    
    }
    
    cout << endl;
    
    }
   
    void Question6_5(int digit_number)
    
    {
    
    
    int a[10000],search_index=0;
    
    int count=0,left_number;
    
    left_number = digit_number;
    
    int result = 0,j=0;
    
    cout << “digitnumber=” << digit_number;
    
    for (int i = 0; i < digit_number; i++)
    
    {
    
    
    a[i] = i;
    
    }
    
    while (left_number != 0)
    
    {
    
    
    if (a[j] != -1)
    
    {
    
    
    if (count == 2)
    
    {
    
    
    a[j] = -1;
    
    left_number–;
    
    count = 0;
    
    }
    
    else
    
    {
    
    
    count++;
    
    result = j;
    
    }
    
    }
    
    j++;
    
    j = j % digit_number;
    
    }
    
    cout << “result:” << result << endl;
    
    }
   
    
    void Question6_6(char * str)
    
    {
    
    
    char* p_str;
    
    p_str = str;
    
    int count_str = 0;
    
    //当p_str指向的数组元素值不为空,进行循环体,
    
    //值为空时结束循环体。
    
    while (*p_str)
    
    {
    
    
    count_str++;
    
    p_str++;
    
    }
    
    cout << “str length:” << count_str<<endl;
    
    }
   
    void Question6_7_copy_str(int start_position)
    
    {
    
    
    char str[100] = “abcdefghijklmnopqrstuvwxyz”;
    
    char copy_to_str[100];
    
    char* p_str, * p_copy_to_str;
    
    p_copy_to_str = copy_to_str;
    
    p_str = str;
    
    p_str = p_str + start_position;
    
    while (*p_str)
    
    {
    
    
    *p_copy_to_str = *p_str;
    
    p_copy_to_str++;
    
    p_str++;
    
    }
    
    //复制后后的p_copy_to_str中,系统没有为它自动分配‘\0’,需要手动添加。
    
    *p_copy_to_str = ‘\0’;
    
    p_copy_to_str = copy_to_str;
    
    p_str = str;
    
    cout << “original:” << p_str << endl;
    
    cout << “result:” << start_position << ” ” << p_copy_to_str <<endl;
    
    return;
    
    }
   
    //统计不用类型字符个数
    
    void Question6_8()
    
    {
    
    
    char str[100];
    
    int lower=0, upper=0, digit=0, others=0,space = 0,i=0;
    
    //错误输入带有空格的字符串方式:cin >> str;
    
    //应该用getchar(),连续接受字符串。
    
    while ((str[i] = getchar())!=’\n’)
    
    i++;
   
    //请注意字符串拼接,在最后添加’\0’结束符。
    
    str[i] = ‘\0’;
    
    cout << str;
    
    char* p_str;
    
    p_str = str;
   
    //以’\0’为结束符。
    
    while (*p_str!=’\0′)
    
    {
    
    
    if (*p_str >= ‘0’ && *p_str <= ‘9’)
    
    digit++;
    
    if (*p_str >= ‘a’ && *p_str <= ‘z’)
    
    lower++;
    
    else if (*p_str >= ‘A’ && *p_str <= ‘Z’)
    
    upper++;
    
    else if (*p_str == ‘ ‘)
    
    space++;
    
    else
    
    others++;
    
    p_str++;
    
    }
    
    cout << “大写字母:” << upper << endl;
    
    cout << “小写字母:” << lower << endl;
    
    cout << “空格:” << space << endl;
    
    cout << “其他字符:” << others << endl;
    
    }
   
    void Question6_9(int n)
    
    {
    
    
    int arrays[6][6] =
    
    {
    
    
    {1,2,3,4,5},
    
    {6,7,8,9,10},
    
    {11,12,13,14,15},
    
    {16,17,18,19,20},
    
    {21,22,23,24,25}
    
    };
    
    int row = 0, col = 0,step;
    
    for (int i = 0; i < n; i++)
    
    {
    
    
    for (int col = 0; col < i; col++)
    
    {
    
    
    swap(arrays[i][col], arrays[col][i]);
    
    }
    
    }
   
    for (int i = 0; i < 5; i++)
    
    {
    
    
    for (int j = 0; j < 5; j++)
    
    {
    
    
    cout << arrays[i][j] << ” “;
    
    }
    
    cout << endl;
    
    }
    
    }
   
    void Question6_10()
    
    {
    
    
    int arrays[6][6] =
    
    {
    
    
    {1,2,3,4,5},
    
    {6,7,8,9,10},
    
    {11,12,13,14,15},
    
    {16,17,18,19,20},
    
    {21,22,23,24,25}
    
    };
    
    int data[100];
    
    int data_index=0;
    
    int  min=0,pos_x,pos_y;
    
    for (int i = 0; i < 5; i++)
    
    {
    
    
    for (int j = 0; j < 5; j++)
    
    {
    
    
    if (arrays[2][2] < arrays[i][j])
    
    {
    
    
    swap(arrays[i][j], arrays[2][2]);
    
    }
    
    if(arrays[0][0] > arrays[i][j])
    
    {
    
    
    swap(arrays[0][0], arrays[i][j]);
    }
    
    }
    
    }
    
    for (int i = 0; i < 5; i++)
    
    {
    
    
    for (int j = 0; j < 5; j++)
    
    {
    
    
    if (i == 0 && j == 0)
    
    continue;
    
    if (arrays[0][4] > arrays[i][j])
    
    {
    
    
    swap(arrays[0][4], arrays[i][j]);
   
    }
    
    }
    
    }
   
    for (int i = 0; i < 5; i++)
    
    {
    
    
    for (int j = 0; j < 5; j++)
    
    {
    
    
    if ((i == 0 && j == 0)|| (i == 0 && j == 4))
    
    continue;
    
    if (arrays[4][0] > arrays[i][j])
    
    {
    
    
    swap(arrays[4][0], arrays[i][j]);
    
    }
    
    }
    
    }
    
    for (int i = 0; i < 5; i++)
    
    {
    
    
    for (int j = 0; j < 5; j++)
    
    {
    
    
    if ((i == 0 && j == 0) || (i == 0 && j == 4)||(i==4&&j==0))
    
    continue;
    
    if (arrays[4][4] > arrays[i][j])
    
    {
    
    
    swap(arrays[4][4], arrays[i][j]);
    
    }
    
    }
    
    }
    
    for (int i = 0; i < 5; i++)
    
    {
    
    
    for (int j = 0; j < 5; j++)
    
    {
    
    
    cout << arrays[i][j] << ” “;
    
    }
    
    cout << endl;
    
    }
    
    }
   
    void Sort_String(char** str ,int Ncase)
    
    {
    
    
    for (int i = 0; i < Ncase; i++)
    
    {
    
    
    for (int j = i; j < Ncase; j++)
    
    {
    
    
    if (strcmp(str[i], str[j]) > 0)
    
    {
    
    
    swap_str(str[i], str[j]);
    
    }
    
    }
    
    }
    
    for (int i = 0; i < Ncase; i++)
    
    cout << str[i] << endl;
    
    }
    
    void Question6_11_12()
    
    {
    
    
    char * str[100];
    
    for (int i = 0; i < 10; i++)
    
    {
    
    
    str[i] = new char[100];
    
    }
    
    for (int i = 0; i < 10; i++)
    
    {
    
    
    cin >> str[i];
    
    }
   
    Sort_String(str,10);
    
    }
   
    //6-13
    
    float integral(float (*p)(float), float a, float b, int n)
    
    //用矩形法求定积分的通用函数
    
    {
    
    
    int i;
    
    float x, h, s;
    
    h = (b – a) / n;
    
    x = a;
    
    s = 0;
    
    for (i = 1; i <= n; i++)
    
    {
    
    
    x = x + h;
    
    s = s + (*p)(x) * h;
    
    }
    
    return(s);
    
    }
    
    float fsin(float x) // 计算 sin(x) 的函数
    
    {
    
    
    return sin(x);
    
    }
    
    float fcos(float x) // 计算 cos(x) 的函数
    
    {
    
    
    return cos(x);
    
    }
    
    float fexp(float x) // 计算 exp(x)的函数
    
    {
    
    
    return exp(x);
    
    }
   
    
    void Question6_12()
    
    {
    
    
    int Ncase;
    
    int data[1000];
    
    cout << “请输入数字的个数:” << endl;
    
    cin >> Ncase;
    
    cout << “请输入数字:” << endl;
    
    for (int i = 0; i < Ncase; i++)
    
    {
    
    
    cin >> data[i];
    
    }
    
    for (int i = Ncase – 1; i >= 0; i–)
    
    {
    
    
    cout << data[i]<<” “;
    
    }
    
    cout << endl;
    
    }
   
    void Question6_14()
    
    {
    
    
    char str[] = “abcd123 123?123tab222”;
    
    int result[1000] = {0,0,0,0,0,0,0,0,0,0};
    
    int temp[1000];
    
    int num_count = 0, result_cnt=0;
    
    cout << str << endl;
    
    char* p_str;
    
    p_str = str;
    
    while (*p_str != ‘\0’)
    
    {
    
    
    if (*p_str > ‘0’ && *p_str < ‘9’)
    
    {
    
    
    temp[num_count] = (*p_str) – ‘0’;
    
    num_count++;
    
    }
    
    else
    
    {
    
    
    if (num_count != 0)
    
    {
    
    
    for (int i = 0; i < num_count; i++)
    
    {
    
    
    result[result_cnt] = result[result_cnt] * 10 + temp[i];
    
    }
    
    result_cnt++;
    
    num_count = 0;
    
    for (int i = num_count – 1; i >= 0; i–)
    
    {
    
    
    temp[i] = 0;
    
    }
    
    }
    
    }
    
    p_str++;
    
    }
   
    if (num_count != 0)
    
    {
    
    
    for (int i = 0; i < num_count; i++)
    
    {
    
    
    result[result_cnt] = result[result_cnt] * 10 + temp[i];
    
    }
    
    result_cnt++;
    
    num_count = 0;
    
    for (int i = num_count – 1; i >= 0; i–)
    
    {
    
    
    temp[i] = 0;
    
    }
    
    }
    
    cout << “共有” << result_cnt << “个整数” << “分别如下:” << endl;
    
    for (int i = 0; i < result_cnt; i++)
    
    cout << result[i] << ” “;
    
    cout << endl;
    
    }
   
    
    int Question6_17_strcmp(const char* str1,const char* str2)
    
    {
    
    
    const char * p_str1, * p_str2;
    
    p_str1 = str1;
    
    p_str2 = str2;
    
    int result = 0;
    
    while (true)
    
    {
    
    
    if (*p_str1 == ‘\0’ && *p_str2 == ‘\0’)
    
    break;
    
    if (*p_str1 == ‘\0’ && *p_str2 != ‘\0’)
    
    return -1;
   
    if (*p_str1 != ‘\0’ && *p_str2 == ‘\0’)
    
    return 1;
   
    if (*p_str1 > *p_str2)
    
    {
    
    
    result = *p_str1 – *p_str2;
    
    return result;
    
    }else if (*p_str1 < * p_str2)
    
    {
    
    
    result = *p_str1 – *p_str2;
    
    return result;
    
    }
    
    if(*p_str1!=’\0′)
    
    p_str1++;
    
    if(*p_str2!=’\0′)
    
    p_str2++;
    
    }
    
    return 0;
    
    }
   
    
    void Question6_18(int month)
    
    {
    
    
    char* Month[20];
    
    for (int i = 0; i < 20; i++)
    
    {
    
    
    Month[i] = new char[20];
    
    }
    
    strcpy(Month[1],”January”);
    
    strcpy(Month[2] , “February”);
    
    strcpy(Month[3] , “March”);
    
    strcpy(Month[4], “April”);
    
    strcpy(Month[5], “May”);
    
    strcpy(Month[6], “June”);
    
    strcpy(Month[7], “July”);
    
    strcpy(Month[8], “Auguest”);
    
    strcpy(Month[9], “September”);
    
    strcpy(Month[10], “October”);
    
    strcpy(Month[11], “November”);
    
    strcpy(Month[12], “December”);
    
    cout << Month[month] << endl;
    
    }