竹不睡 2022-09-02 08:54 采纳率: 0%
浏览 52
已结题

用的是VS2019,自己写的函数swap,函数swap没有改变实参的值是为什么,求解答.


#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

void swap(int x, int y)
{
    int temp;
    temp = x;
    x = y;
    y = temp;
}
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    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", a, c);
    return 0;
}
  • 写回答

5条回答 默认 最新

  • Nutkey 2022-09-02 09:07
    关注
    
    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    #include <iostream>
    //在前面用&,可以实现传参赋值!
    void swap(int &x, int &y)
    {
        int temp;
        temp = x;
        x = y;
        y = temp;
    }
    int main()
    {
        int a;
        int b;
        int 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", a, c);
        system("pause");
        return 0;
    }
    

    结果:

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月2日
  • 创建了问题 9月2日