编辑代码

#include <stdio.h>
#include <math.h>

int arr[100]={1,2,3};
int bit[100]={1,2,3};

int max = 0;
int num = 0;

int index[100]={0};
int i = 0;
int j = 0;
int k = 0;

int len = 0;

int main (void) 
{
    printf("请输入0-100的数组长度:");
    scanf("%d",&len);
    for(i=0;i<len;i++)
    {
        printf("请输入数组元素:");
        scanf("%d",&arr[i]);
    }

    for(i=0;i<len;i++)
        if(arr[i]<10)
            bit[i]=0;
        else if(arr[i]<100)
            bit[i]=1;
        else if(arr[i]<1000)
            bit[i]=2;
        else if(arr[i]<10000)
            bit[i]=3;

// for(i=0;i<len;i++)
    for(index[0]=0;index[0]<len;index[0]++)
        for(index[1]=0;index[1]<len;index[1]++)
            for(index[2]=0;index[2]<len;index[2]++)
            {
                if(index[0]!=index[1]  && index[1]!=index[2])
                    {
                        for(k=0;k<len;k++)
                            num += arr[index[k]]* (int)pow(10,bit[index[k]]) ;
                        if(num>=max)
                        {
                            max = num;
                            printf("%d",max);
                            // for(k=0;k<len;k++)
                            // printf("%d",arr[index[k]]);
                        }
                    }
            }

    return 0;
}  


/*
1.用结构体和位域
定义变量长度节约

2.大量数组数据可以压缩解压

3.用寄存器操作替代部分库函数操作,
用register关键字,浮点数放大100倍变成整数运算,大量数据传输用DMA
*/