c语言,能得到答案,可是全都是WA,是我的算法不行吗,求大佬指教
查看原帖
c语言,能得到答案,可是全都是WA,是我的算法不行吗,求大佬指教
754906
bk492511楼主2022/9/2 21:08
#include <stdio.h>

void csh(int* A[],int* a)
{
    int cir=0,b=0;
    scanf("%d",a);
    for(cir=0;cir<*a;cir++)
    {
        scanf("%d",&b);
        A[cir]=b;
    }
}

void px(int* A[],int a)
{
    int cir=0,cir1=0,zhs=0;
    for(cir=0;cir<a;cir++)
    {
        for(cir1=0;cir1<a-1;cir1++)
        {
            if(A[cir1]>A[cir1+1])
            {
                zhs=A[cir1+1];
                A[cir1+1]=A[cir1];
                A[cir1]=zhs;
            }
        }
    }
}

int cc(int* A[],int a)
{
    int count=0,cir=0;
    for(cir=0;cir<a-1;cir++)
    {
        if(A[cir]!=A[cir+1])
        {
            count++;
        }
        else
        {
            A[cir]=1001;
        }
    }
    return count+1;
}

int main()
{
    int a=0,end=0,cir=0;
    int A[110]={};
    csh(A,&a);//初始化
    px(A,a);//排序(冒泡?我学的不太好不懂是不是)
    end=cc(A,a);//查重,顺便把重复的数字改到范围外比如 1001
    px(A,a);//重新排序
    printf("%d\n",end);//打印不重复的前几个数字
    for(cir=0;cir<end;cir++)
    {
        printf("%d ",A[cir]);
    }
    return 0;
}
//虽然最后也能得到结果,但是不是代码写的太lj了。。。
2022/9/2 21:08
加载中...