2018-05-20

任务 2

  1. 数制转换
    n % 2
    k++

  2. 矩阵运算
    i = 0; i < n; i++
    j = i; j < n; j++
    s *= x[i][j]

  3. 排序
    j += 2
    a[j] < a[i]

任务 3

  1. 顺序表的插入和删除
#include    
#define M 100005

int n, data[M];

void init() {
    printf("请输入顺序表长度:\n");
    scanf("%d", &n);
    printf("请输入顺序表元素,以空格间隔:\n");
    for (int i = 0; i < n; i++) {
        scanf("%d", &data[i]);
    }
}

void showMenu() {
    printf("1. 插入元素\n2. 删除元素\n3. 退出\n请输入:\n");
}

void ins(int pos, int element) {
    for (int i = n; i >= pos - 1; i--) {
        data[i + 1] = data[i];
    }
    data[pos - 1] = element;
    n++;
}

void del(int pos) {
    for (int i = pos - 1; i < n; i++) {
        data[i] = data[i + 1];
    }
    n--;
}

void pnt() {
    for (int i = 0; i < n; i++) {
        printf("%d ", data[i]);
    }
    printf("\n");
}

int main()
{
    init();
    while (1) {
        int opt;
        showMenu();
        scanf("%d", &opt);
        switch (opt) {
        case 1:
            printf("请输入待插入元素位与待插入元素,以空格间隔:\n");
            int m, n;
            scanf("%d%d", &m, &n);
            ins(m, n);
            printf("当前顺序表为:\n");
            pnt();
            break;
        case 2:
            printf("请输入待插入元素位与待插入元素,以空格间隔:\n");
            int o;
            scanf("%d", &o);
            del(o);
            printf("当前顺序表为:\n");
            pnt();
            break;
        case 3:
            return 0;
        }
    }
}
  1. 打鱼还是晒网
#include 

int days[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int main() {
    int y, m, d;
    printf("请输入待计算的日期,年月日以空格分割:\n");
    scanf("%d%d%d", &y, &m, &d);
    int i, s = 0;
    for (i = 1990; i < y; i++) {
        if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
            s += 366;
        }
        else {
            s += 365;
        }
    }
    if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
        days[2] = 29;
    for (i = 1; i < m; i++) {
        s += days[i];
    }
    s += d;
    if ((s % 5) > 0 && (s % 5) < 4) {
        printf("打鱼。\n");
    }
    else {
        printf("晒网。\n");
    }
    return 0;
}
  1. 对称矩阵
#include 
#define M 10005

int data[M][M];

int main() {
    int n;
    printf("请输入二维数组的长度:\n");
    scanf("%d", &n);
    printf("请按行输入二维数组,以空格间隔:\n");
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            scanf("%d", &data[i][j]);
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = i; j < n; j++) {
            if (data[i][j] != data[j][i]) {
                printf("此矩阵不对称。\n");
                return 0;
            }
        }
    }
    printf("此矩阵对称。\n");
    return 0;
}
  1. 比较字符串大小
#include 
#define M 10005

int main() {
    int i = 0;
    char str1[M], str2[M];
    printf("请输入第一个字符串:\n");
    gets(str1);
    printf("请输入第二个字符串:\n");
    gets(str2);
    while (str1[i]) {
        if (str1[i] != str2[i]) break;
        else i++;
    }
    if ((str1[i] - str2[i]) < 0) {
        printf("第一个字符串小。");
    }
    else if ((str1[i] - str2[i]) == 0) {
        printf("两个字符串相等。");
    }
    else if ((str1[i] - str2[i]) > 0) {
        printf("第一个字符串大。");
    }
}

你可能感兴趣的:(2018-05-20)