day_11_9 实现数组交换,排序


//实现三个数的交换
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void swap(int *x, int *y)
{
    int t;
    if (*x < *y)
    {
        t = *x;
        *x = *y;
        *y = t;
    }
}
int main()
{
    int a, b, c,t = 0;
    printf("请输入三个数,用空格隔开\n");
    scanf("%d %d %d",&a,&b,&c); 
        swap(&a, &b);
        swap(&a, &c);
        swap(&b,&c);
    printf("%d %d %d\n",a,b,c);
    system("pause");
    return 0;
}

//求两个数的最大公约数
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int max_cd(int *x, int *y)
{
    while (*x % *y != 0)
    {
        if (*x > *y)
            *x = *x - *y;
        else *y = *y - *x;
    }
    return *y;
}
int max_cd1(int *x,int *y)
{
    int z = 0;
    int min = *x > *y ? *y : *x;
    while (z = *x % *y != 0)
    {
        *x = *y;
        *y = *y % z;
    }
    return *y;
}
int main()
{   
    int a, b;
    int c = 0;
    printf("Please enter teo numbers\n");
    scanf("%d %d",&a,&b);
    c = max_cd(&a, &b);
    printf("a和b的最大公约数是:%d \n",c);
    c = max_cd1(&a, &b);
    printf("a和b的最大公约数是:%d \n", c);
    system("pause");
    return 0; 
}

//输出十个数中最大的一个
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int i = 0;
    int max = 0;
    int a[10] = {1,6,5,9,8,7,3,4,12,2};
    for(i = 0; i < 10; i ++ )
    {
    printf("%d ",a[i]);
    }
    max = a[0];
    for (i = 1; i < 10; i++)
        {
        if (a[i]>max)
            max = a[i];     
        }
    printf("\n最大的值是:%d \n",max);
    system("pause");
    return 0;
}

//不使用临时变量的交换方法
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int i = 0;
    int j = 0;
    printf("请输入两个整数,用空格隔开\n");
    scanf("%d %d", &i,&j);
    i = i^j;
    j = i^j;
    i = j^i;
    printf("%d %d\n",i,j);
    system("pause");
    return 0;
}

//交换两个数,创建临时变量
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    int t = 0;
    printf("请输入两个数,用空格隔开\n");
    scanf("%d %d", &a,&b);
    t = a;
    a = b;
    b = t;
    printf("%d %d",a,b);
    system("pause");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值