1. 给定两个整形变量的值,将两个值的内容进行交换。 2. 不允许创建临时变量,交换两个数的内容(附加题)3.求10 个整数中最大值。4.将三个数按从大到小输出。 5.求两个数的最大公约数

这篇博客展示了如何使用C语言实现数值交换的两种方法,包括使用临时变量和不使用临时变量的交换。同时,还提供了寻找10个整数中的最大值、按降序输出三个数以及计算两个数的最大公约数的函数实现。通过实例代码,帮助读者理解这些基本的计算操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
#include<windows.h>
#include<string.h>
#include<math.h>
#pragma warning(disable:4996)
//交换两个数
void change(int *a, int *b)
{
    int tep = 0;
    tep = *a;
    *a = *b;
    *b = tep;

}
//不创建临时变量交换两个数
void swap(int *a, int *b)
{
    *a ^= *b;
    *b ^= *a;
    *a ^= *b;

}
int Max()
{
    int a[] = { 34,65,13,76,2,5,8,43,71,24 };
    int num = sizeof(a) / sizeof(a[0]);
    int max = a[0];
    int i = 1;
    for (; i < num; i++)
    {
        if (max < a[i])
            max = a[i];
    }
    return max;
}
void sort(int d, int e, int f)
{
    if (d > e) 
    {
        if (f > d)//z x y 
            printf("%d,%d,%d\n", f,d,e);
        else if (f > e)//x z y
            printf("%d,%d,%d\n", d,f,e);
        else//x y z
            printf("%d,%d,%d\n", d,e,f);
    }
    else
    {
        if (f > e)//z y x
            printf("%d,%d,%d\n", f,e,d);
        else if (f > d)//y z x
            printf("%d,%d,%d\n", e,f,d);
        else//y x z
            printf("%d,%d,%d\n", e,d,f);
    }
}
int divisor(int x,int y)
{
    int min=(x > y ? y : x);
while(min > 1)
{
    if (y% min == 0 && x%min == 0)
    {
        break;
    }
    min--;
}
return min;
}
int main()
{
    //1. 给定两个整形变量的值,将两个值的内容进行交换。 
    int x = 8;
    int y = 9;
    printf("Value before swap:%d,%d\n\n", x, y);
    change(&x, &y);
    printf("Exchanged values:%d,%d\n\n", x, y);
    //2. 不允许创建临时变量,交换两个数的内容(附加题)
    swap(&x, &y);
    printf("Exchanged values:%d,%d\n\n", x, y);
    //3.求10 个整数中最大值。
    int max = Max();
    printf("the max num=%d\n\n", max);
    //4.将三个数按从大到小输出。
    sort(12, 11, 15);
    //5.求两个数的最大公约数。
    int m=divisor(45, 23);
    printf("Greatest common divisor:%d\n", m);
    system("pause");
}

### 使用临时变量交换两个变量 在 Python 中,可以通过多种方式实现在使用额外空间的情况下交换两个变量。以下是几种常见的方式: #### 方法一:算术运算 通过加减法操作来完成之间的交换。 ```python def swap_with_arithmetic(a, b): print(f&#39;Before swapping: a={a}, b={b}&#39;) a = a + b b = a - b # 此时相当于原来的a a = a - b # 此时相当于原来的b print(f&#39;After swapping: a={a}, b={b}&#39;) ``` 这种方法利用了基本的学原理[^3]。 #### 方法二:异或运算 (XOR) 对于整数类型的变量还可以采用按位异或的方式来实现无第三方辅助下的交换。 ```python def swap_with_xor(a, b): print(f&#39;Before swapping: a={a}, b={b}&#39;) if isinstance(a,int) and isinstance(b,int): a ^= b b ^= a a ^= b print(f&#39;After swapping: a={a}, b={b}&#39;) else: print(&#39;This method only works with integers.&#39;) ``` 此方法适用于整形据类型,并且依赖于计算机底层硬件的支持特性。 #### 方法三:解包赋 Python 提供了一种简洁优雅的方法——多重赋/平行赋,即直接声明新元组来进行一次性多分配。 ```python def swap_with_unpacking(a, b): print(f&#39;Before swapping: a={a}, b={b}&#39;) a, b = b, a print(f&#39;After swapping: a={a}, b={b}&#39;) ``` 这种方式仅限于数字类型,几乎可以处理任何可迭代对象间的元素互换[^4]。 上述每一种方案都能有效地解决给定,其中第三种最为推荐,因为它最直观易懂而且适用范围广。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值