一、编写函数void swap(int pa,int pb)完成两个整数的交换,在main( )函数中输入3个整数,调用函数void swap(int pa,int pb)将它们按由小到大的顺序输出。



#include <stdio.h>

void swap(int* pa, int* pb) {
    int temp;
    temp = *pa;
    *pa = *pb;
    *pb = temp;
}

int main() {
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    if (a > b) {
        swap(&a, &b);
    }
    if (a > c) {
        swap(&a, &c);
    }
    if (b > c) {
        swap(&b, &c);
    }
    printf("%d %d %d\n", a, b, c);
    return 0;
}

二、编写函数void max_min(int p, int n, int max, int min)完成找出指针p所指向数组中的最大值和最小值,n为数组中元素个数。运行函数为了能够得到两个结果值,可使用指针变量在函数之间“传递”数据,在main( )函数中调用函数void max_min(int p, int n, int max, int min)找出数组中的最大值和最小值,并输出。



#include <stdio.h>

void max_min(int* p, int n, int* max, int* min) {
    int t;
    for (int i = 1; i < n; i++) {
        for (int j = 0; j < n - i; j++) {
            if (*(p + j) > *(p + j + 1)) {
                t = *(p + j);
                *(p + j) = *(p + j + 1);
                *(p + j + 1) = t;
            }
        }
    }
    *max = *(p + n - 1);
    *min = *(p);
}

int main() {
    int max, min;
    int a[10] = { 52,38,3,28,81,48,98,36,69,77 };
    max_min(a, 10, &max, &min);
    printf("%d %d\n", max, min);
    return 0;
}

三、编写程序,使用指针求二维数组元素的最大值,并确定最大值元素所在的行和列。



#include <stdio.h>

int main() {
    int max, maxi, maxj, a[3][3] = { {85,88,17},{98,61,60},{71,37,73} };
    max = a[0][0];
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (*(*(a + i) + j) > max) {
                max = a[i][j];
                maxi = i;
                maxj = j;
            }
        }
    }
    printf("最大值:%d,所在行:%d,所在列:%d\n", max, maxi+1, maxj+1);
    return 0;
}

标签: none

添加新评论

注意:已开启评论过滤器,无中文无法评论!
泡泡表情