user-0 提问: 新手刷PTA最好吃的月饼有两个测试点怎么都过不去，请求大佬帮忙看看

回复:
user: user-0
content: 引用 10 楼 遇见女神的回复:[quote=引用 9 楼 qq_46068469 的回复:] [quote=引用 8 楼 遇见女神的回复:][quote=引用 3 楼 qq_46068469 的回复:] [quote=引用 1 楼 遇见女神的回复:]按照题目要求有N<=1000，你只定义b[100]，少了个0啊。 我改成1000了 最后一个测试点还是错的 汗[/quote] 你定义的a[1000][100]，数组的行和列的数字是相反的，应是a[100][1000]。[/quote] 没反吧[/quote] 再仔细看题目，列是种类数，是N，N是<=1000，你定义的数组的列数是多少？[/quote] 通过了！非常感谢你！

user: user-1
content: 引用 9 楼 qq_46068469 的回复:[quote=引用 8 楼 遇见女神的回复:][quote=引用 3 楼 qq_46068469 的回复:] [quote=引用 1 楼 遇见女神的回复:]按照题目要求有N<=1000，你只定义b[100]，少了个0啊。 我改成1000了 最后一个测试点还是错的 汗[/quote] 你定义的a[1000][100]，数组的行和列的数字是相反的，应是a[100][1000]。[/quote] 没反吧[/quote] 再仔细看题目，列是种类数，是N，N是<=1000，你定义的数组的列数是多少？

user: user-0
content: 引用 8 楼 遇见女神的回复:[quote=引用 3 楼 qq_46068469 的回复:] [quote=引用 1 楼 遇见女神的回复:]按照题目要求有N<=1000，你只定义b[100]，少了个0啊。 我改成1000了 最后一个测试点还是错的 汗[/quote] 你定义的a[1000][100]，数组的行和列的数字是相反的，应是a[100][1000]。[/quote] 没反吧

user: user-1
content: 引用 3 楼 qq_46068469 的回复:[quote=引用 1 楼 遇见女神的回复:]按照题目要求有N<=1000，你只定义b[100]，少了个0啊。 我改成1000了 最后一个测试点还是错的 汗[/quote] 你定义的a[1000][100]，数组的行和列的数字是相反的，应是a[100][1000]。

user: user-0
content: 引用 5 楼 自信男孩的回复:你的测试点没通过，看一下有没有运行时间的要求？ 是符合运行时间要求的，就是一个测试点答案错误

user: user-2
content: #include <stdio.h>  int main() {   int N, M, A[1000] = {0}, i, j, x = 0, p = 0;    scanf("%d%d", &N, &M);   while(M--)     for (i = 0; i < N; (A[i++] += j) > x ? x = A[p = i - 1] : 0) scanf("%d", &j);   printf("%d\n%d", x, p + 1);   while (++p < N) if (A[p] == x) printf(" %d", p + 1);   puts("");        return 0; }

user: user-3
content: 你的测试点没通过，看一下有没有运行时间的要求？

user: user-3
content: #include<stdio.h> #include <stdlib.h>  int main() {     int **mooncake, N, M, *amount;     int i, j;     int max, flag;      scanf("%d%d", &N, &M);       mooncake = (int **)malloc(sizeof(int *) * M);     if (!mooncake)         exit(0);     amount = (int *)malloc(sizeof(int) * N);     if (!amount)         exit(0);      for (i = 0; i < M; i++) {         mooncake[i] = (int *)malloc(sizeof(int) * N);         if (!mooncake[i])             exit(0);     }      for (i = 0; i < M; i++) {         for (j = 0; j < N; j++)             scanf("%d", &mooncake[i][j]);     }      max = -1;     for (i = 0; i < N; i++) {         amount[i] = 0;         for (j = 0; j < M; j++)             amount[i] += mooncake[j][i];         if (max < amount[i])             max = amount[i];     }      printf("%d\n", max);     flag = 0;     for (i = 0; i < N; i++) {         if (max == amount[i] && flag == 0) {             printf("%d", i+1);             flag = 1;         } else if (flag == 1) {             printf(" %d", i+1);         }     }     /*     int N, M;     scanf("%d %d", &N, &M);//N列，M行     int a[1000][100] = {0};     int i = 0;     int j = 0;     int b[100] = {0};      for (i = 0; i < M; i++) {         for (j = 0; j < N; j++) {             scanf("%d", &a[i][j]);//数据输入         }     }     for (i = 0; i < N; i++) {         for (j = 0; j < M; j++) {             b[i] += a[j][i];//b[i]为第i种月饼销量         }     }     int max = b[0];     for (i = 0; i < N; i++) //遍历数组，找出最大值     {         if (b[i] > max)max = b[i];     }     printf("%d\n", max);//输出最大值     int c = 0;     for (i = 0; i < N; i++) //求冠军是否唯一     {         if (b[i] == max)c++;     }     for (i = 0; i < N; i++) //输出冠军月饼编号     {         if (b[i] == max) {             printf("%d", i+1);             c--;             if (c > 0)printf(" ");         }     }     */     return 0; } 试一下这个 供参考～

user: user-0
content: 引用 1 楼 遇见女神的回复:按照题目要求有N<=1000，你只定义b[100]，少了个0啊。 我改成1000了 最后一个测试点还是错的 汗

user: user-0
content: 引用 1 楼 遇见女神的回复:按照题目要求有N<=1000，你只定义b[100]，少了个0啊。 卧槽，谢谢大佬，谢谢谢谢

user: user-1
content: 按照题目要求有N<=1000，你只定义b[100]，少了个0啊。