gpt4 book ai didi

c - 在 LightOJ 中解决 #1015(画笔)

转载 作者:行者123 更新时间:2023-11-30 20:14:08 26 4
gpt4 key购买 nike

我正在尝试解决the following problem .

输入

输入以整数T(≤100)开头,表示测试用例的数量。

每个案例都以空行开头。下一行包含一个整数N(1≤N≤1000),表示有N个学生。下一行将包含由空格分隔的 N 个整数,表示所有学生的灰尘单位。任何学生的灰尘单位都不会超过两位数字。

输出

对于每个案例,请打印案例编号和所需的总粉尘单位。

示例输入

+--------------+-------------------------+
| Sample Input | Output for Sample Input |
+--------------+-------------------------+
| 2 | Case 1: 16 |
| | Case 2: 100 |
| 3 | |
| 1 5 10 | |
| | |
| 2 | |
| 1 99 | |
+--------------+-------------------------+

这是我的代码:

#include <stdio.h>

int main() {
int kase = 0;
int i = 0, j = 0;

do {
scanf("%d", &kase);
} while (kase > 100);

int group[kase];
int tdust[kase];

for (i = 1; i <= kase; i++) {
tdust[i] = 0;

printf("\n");
do {
scanf("%d", &group[i]);
} while (group[i] < 1 || group[i] > 1000);

int stdNumber[group[i]];

for (j = 1; j <= group[i]; j++) {
do {
scanf("%d", &stdNumber[j]);
} while (stdNumber[j] >= 100);
tdust[i] = tdust[i] + stdNumber[j];
}
}
for (i = 1; i <= kase; i++)
printf("\nCase %d: %d", i, tdust[i]);
}

当我提交代码时,OnlineJudge 说我得到了错误的答案。我该如何修复它?

最佳答案

您正在获得 WA,因为您的代码显示 UB(Undefined Behaviour) 。您假设长度为 n 的数组的有效索引(其中 n 是自然数),从 1 开始到 n 结束。这是错误的。对于长度为 n 的数组(n 是自然数),数组索引从 0 开始到 n-1 结束。

要修复它,请更改

 for(i=1; i<=kase; i++)

 for(i=0; i<kase; i++)

同样,对所有其他循环执行相同的操作。也改一下

printf("\nCase %d: %d",i,tdust[i]);

printf("\nCase %d: %d",i+1,tdust[i]);

这样你就能得到想要的结果。

关于c - 在 LightOJ 中解决 #1015(画笔),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27722643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com