想问一下这段代码可以怎么改,能够降低圈复杂度

想问一下这段代码可以怎么改,能够降低圈复杂度

#include
void main()
{
    int i, a, b, c;
    i = 0;
    while (i < 100) {
        printf("Enter numbers: ");
        scanf_s("%d %d%d", &a, &b, &c);
        if (a > b)
        {
            if (a > c)
                printf("max. a=%d\n", a);
            else if (a == c)
                printf("max. a=c=%d\n", c);
            else
                printf("max.c=%d\n", c);
        }
        else {
            if (a == b)
            {
                if (a > c)
                    printf("max.a=b=%d\n", a);
                else
                    if (a == c)
                        printf("max.a=b=c=%d\n", c);
                    else
                        printf("max.c=%d\n", c);
            }
            else {
                if (b > c)
                    printf("max.b=%d\n", b);
                else
                    if (b == c)
                        printf("max. b=c=%d\n", b);
                    else
                        printf("max. c=%d\n", c);
            }
        }
        i++;
    }
}


原题是这样的:
从键盘输入3个整数(间隔为空格),找出并输出其中数值最大的那一个。如果其中有一个以上的最大数(相等的情况),也要表示出来。
谢谢大家

同学你的代码得到最大数的比较次数最多比较四次,最少比较两次才能得到最大数,下面的代码比较两次就可以得到最大数


//比较两次得到三个数的最大数
int main()
{
    int a, b, c, max = 0;
    scanf("%d %d %d", &a, &b, &c);
    if (a > b)
    {
        max = a;
    }
    else
    {
        max = b;
    }
    if (max > c)
    {
        printf("%d", max);
    }
    else
    {
        printf("%d", c);
    }
    return 0;
}
#include <stdio.h>
#define MAX(A, B) ((A) > (B) ? (A) : (B))
void main()
{
    int i, a, b, c;

    i = 0;
    while (i < 100) {
        printf("Enter numbers: ");
        scanf("%d %d %d", &a, &b, &c);
        int nums[] = {a, b, c};

        int max = MAX(MAX(a, b),c);
        printf("max.");
        for (int i = 0; i < 3; i++)
            if (nums[i] == max) printf("%c=", 'a' + i);
        printf("%d\n", max);
        i++;
    }
}