关于数据结构的内容,实参要求为指针变量

使用指针(实参为指针变量)设计一个函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中。

img

函数参数是3个指针就行了

#include <stdio.h>

void fun(int *a,int *b,int *c)
{
    int m=*a,n=*a,c= *a+*b+*c;
    if(*b>m)
        m = *b;
    if(*c>m)
        m  = *c;
    if(*b<n)
        n = *b;
    if(*c < n)
        n = *c;
    *a = m;
    *c = n;
    *b = c - m - n;
}
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    fun(&a,&b,&c);
    printf("%.1f,%.1f,%.1f",(float)a,(float)b,(float)c);
    return 0;
}

#include <stdio.h>

void swap(float *x, float *y)
{
    float t = *x;
    *x = *y;
    *y = t;
}

void fun(float *a, float *b, float *c)
{
    if (*a < *b)
        swap(a, b);
    if (*a < *c)
        swap(a, c);
    if (*b < *c)
        swap(b, c);
}

int main()
{
    float a, b, c;
    scanf("%f%f%f", &a, &b, &c);
    fun(&a, &b, &c);
    printf("a=%.1f, b=%.1f, c=%.1f\n", a, b, c);
    return 0;
}

因为你要求在函数内部改变外部的值,所以需要传地址进去