eureka_771 2022-11-24 15:39 采纳率: 80%
浏览 10
已结题

CCF201503-2编译错误

在做CCF201503-2数字排序的时候,在编译器上正常运行,移交之后显示编译错误。

以下是我写的代码:

#include <stdio.h>

void simple_sort(struct statistic* a, int max);
void tmp(int* a, int* b);

struct statistic {
    int num;
    int count;
}a[1001];

int main(int argc, const char* argv[])
{
    int n, x, max = 0;
    scanf("%d", &n);
    for (int i = 0; i < 1001; i++) {
        a[i].count = 0;
    }
    for (int i = 0; i < n; i++) {
        scanf("%d", &x);
        a[x].count++;
        a[x].num = x;
        if (max < x) max = x;
    }
    simple_sort(a, max);
    for (int i = 0; a[i].count != 0; i++) {
        printf("%d %d\n", a[i].num, a[i].count);
    }
    return 0;
}

void simple_sort(struct statistic* a, int max) {
    for (int j = 0; j < max; j++) {
        for (int i = 0; i < max; i++) {
            if (a[i].count == 0) {
                int m;
                for (int k = i; k < max; k++) {
                    a[k].num = a[k + 1].num;
                    a[k].count = a[k + 1].count;
                    m = k + 1;
                }
                a[m].count = 0;
            }
            if (a[i].count < a[i + 1].count) {
                tmp(&a[i].count, &a[i + 1].count);
                tmp(&a[i].num, &a[i + 1].num);
            }
            else if (a[i].count == a[i + 1].count)
                if (a[i].num > a[i + 1].num)
                    tmp(a[i].num, a[i + 1].num);
        }
    }
    return;
}

void tmp(int* a, int* b) {
    int tmp = *a;
    *a = *b;
    *b = tmp;
    return;
}

我思路是借助结构数组记录数字和出现次数。
函数simple_sort里的第一个循环是保证数组前面部分没有空的,之后进行排序、输出。
不知道是不是结构数组的问题,怎么还能编译报错呢,我不理解。

展开全部

  • 写回答

1条回答 默认 最新

  • yun6853992 2022-11-25 00:30
    关注

    编译报错就根据报错提示分析一下,然后解决编译报错就好啊

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    eureka_771 2022-11-25 10:50

    编译只说是错了,没说哪错了,之后才看到缺了取地址符

    回复
    eureka_771 2022-11-25 10:50

    谢谢了

    回复
    yun6853992 回复 eureka_771 2022-11-25 12:28

    哈哈 加油

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月25日
  • 创建了问题 11月24日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部