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

#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");
}

发布了35 篇原创文章 · 获赞 7 · 访问量 3204

猜你喜欢

转载自blog.csdn.net/weixin_44358097/article/details/89970745