练习10-1

#include <stdio.h>

void adjust_point(int*n) {
    if (*n > 100)
        *n = 100;
    if (*n < 0)
        *n = 0;
}


int main() {
    int x;
    printf("请输入一个数:");
    scanf("%d", &x);
    adjust_point(&x);
    printf("修改后的值是%d",x);
}

练习10-2

void decrement_date(int* y, int* m, int* d) {
    *d -= 1;

    if (*d == 0) {
        *m -= 1;

        if (*m == 1 || *m == 3 || *m == 5 || *m == 7 || *m == 10 || *m == 8 ||* m == 0) {
            *d = 31;

        }
        if (*m == 2) {
            *d = 28;
            if (*y % 4 == 0) {
                *d = 29;
            }
        }

        else
            *d = 30;
        if (*m == 0) {
            *m = 12;
            *y -= 1;
        }

    }

}
void increment_date(int* y, int* m, int* d) {

    *d += 1;
    if ((*m == 1 || *m == 3 || *m == 5 || *m == 7 || *m == 10 || *m == 8 || *m == 12) && (*d == 32)) {
        *d = 1;
        *m += 1;
    }
    if ((*m == 4 || *m == 6  || *m == 9 || *m == 11 ) && (*d == 31)) {
        *d = 1;
        *m += 1;
    }
    if (*m == 2) {

        if (*d == 29&& ((*y & 4) != 0)) {
            *d = 1;
            *m += 1;
        }

        if (*d == 30 && ((*y & 4) == 0)) {
            *d = 1;
            *m += 1;

        }
    }
    if (*m == 13) {
        *y += 1;
        *m = 1;
    }
}

练习10-3

#include<stdio.h>


void swap(int* px, int*py) {
    int temp = *px;
    *px = *py;
    *py = temp;
}



void  sort3(int*n1, int*n2, int*n3) {
    if (*n1 > *n2) {
        swap(n1, n2);
    }
    if (*n1 > * n3) {
        swap(n1, n3);
    }
    if (*n2 > * n3) {
        swap(n2, n3);
    }
}





int main(void) {
    int n1, n2, n3;
    printf("n1=");
    scanf("%d", &n1);
    printf("n2=");
    scanf("%d", &n2);
    printf("n3=");
    scanf("%d", &n3);
    putchar('\n');
    sort3(&n1, &n2, &n3);
    printf("%d,%d,%d", n1, n2, n3);
}

练习10-4

#include <stdio.h>
#define number 5
void set_idx(int*v, int n) {
    int i = 0;
    for (i = 0; i < n; i++) {
        *(v + i) = i;
    }
}

int main() {
    int i;
    int x[number];
    set_idx(x, number);
    for (i = 0; i < number; i++) {
        printf("x[%d]=%d", i,x[i] );
            putchar('\n');
    }



}

练习10-5

会报错

数组中元素会溢出,因为直接从v【2】开始赋值。

01-04 03:39