顾客购物车共同性调查

顾客购物车共同性调查_第1张图片顾客购物车共同性调查_第2张图片

写代码中发现一个问题:

为变量命名遭到了问题,如i, j用完之后只能找x, y。用得不是非常顺手,有没有常用的四个一起的变量(abcd好像不是非常常用)。而且变量的命名过于相似,如kind和kinds,good和goods,有的时候会混用。

代码如下:

#include
#include
int cmp(const void *a,const void *b)
{
	return *(int*)a-*(int*)b;
}
int goods[100][2];

int main(void)
{
    int n, kinds = 0, num = 0;
    scanf("%d", &n);
    for(int i = 0; i < n; i++)
    {
        int m;
        scanf("%d", &m);
        num += m;
        for(int j = 0; j < m; j++)
        {
            int save, jud = 1;
            scanf("%d", &save);
            for(int x = 0; x < kinds; x++)
                if(goods[x][0] == save)
                {
                    goods[x][1]++;
                    jud = 0;
                }
            if(jud) goods[kinds++][0] = save;
        }
    }
    if(num == kinds)
        printf("NO");
    else
    {
        int max = 0, good[100], num_2 = 0;
        for(int i = 0; i < kinds; i++)
            if(goods[i][1] > max)
            {
                max = goods[i][1];
                num_2 = 0;
                good[num_2++] = goods[i][0];
            }
            else if(goods[i][1] == max)
                good[num_2++] = goods[i][0];
        qsort(good, num_2, sizeof(int), cmp);
        for(int i = 0; i < num_2; i++)
        {
            if(i) putchar(' ');
            printf("%d", good[i]);
        }
    }

    return 0;
}

偷懒用了qsort函数:3

你可能感兴趣的:(算法,数据结构)