eureka_771 2022-11-24 23:39 采纳率: 87.5%
浏览 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 08:30
    关注

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

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 11月24日

悬赏问题

  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测