C语言用数组检查一组数字中是否有重复

int judgement(int a,int b,int c,int d,int e,int f,int g,int h,int i){
if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i\
&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i&&d!=e&&d!=f&&d!=g&&d!=h&&d!=i\
&&e!=f&&e!=g&&e!=h&&e!=i&&f!=g&&f!=h&&f!=i&&g!=h&&g!=i&&h!=i){
return 1;
}
else{
return 0;
}
其中abcdefghi在1到9中取值

// 判定一个数组中是否存在相同的数。
// 拿每个数和它后面所有的数比较,有相同的就返回真。
// 全部比较完都没有相同的就返回假。
int HasIdentical(const int* arr, int n)
{
    int i = 0, j = 0;
    for (i = 0; i < n; ++i)
    {
        for (j = i + 1; j < n; ++j)
        {
            if (arr[i] == arr[j])
            {
                return 1;
            }
        }
    }

    return 0;
}

// 按照你的意思,这个函数可以这样改写:
int judgement(int a, int b, int c, int d, int e, int f, int g, int h, int i)
{
    int arr[9] = { 0 };
    arr[0] = a; arr[1] = b; arr[2] = c; arr[3] = d; arr[4] = e;
    arr[5] = f; arr[6] = g; arr[7] = h; arr[8] = i;

    return !HasIdentical(arr, 9);
}

追问

int*是什么意思啊

温馨提示:答案为网友推荐,仅供参考
相似回答