- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
***我不是在寻找解决方案帖子
我正在参加 C 语言的 Tape Equilibrium Codility 培训,这就是我所取得的进展:
// you can write to stdout for debugging purposes, e.g.
// printf("this is a debug message\n");
#include <stdio.h>
#include <stdlib.h>
int solution(int A[], int N) {
int difference;
int smallest;
int left;
int right;
if (N == 1) return 0;
for (int i = 0; i < N; i++) {
right += A[i];
}
for (int P = 1; P < N; P++) {
int val = A[P - 1];
right -= val;
left += val;
difference = abs(left - right);
if (P == 1) smallest = difference;
if (difference <= smallest) smallest = difference;
}
return smallest;
}
我不断发现我的解决方案返回 0(我假设是由于“if (N == 1)”行...考虑到给定的情况,我不确定为什么程序会输入“if”情况例如 N=5)。我放弃了并上交了这个,我的代码对于所有 Codility 测试用例都返回 0。每当我注释掉该行时,程序都会返回一些巨大的数字,我也不知道为什么。
我是否缺少某种 C 原理?我要疯了,因为我不知道为什么程序会输入 if case if N!=0。
最佳答案
将初始化代码更改为
int smallest = 0;
int left = 0;
int right = 0;
一切都应该没问题。原因是你有未定义的行为。原因也不在
if (N == 1) return 0;
您可以添加类似的内容
printf("%d - %d\n", P, smallest);
到 for
循环的末尾并查看每一步的结果。您还会看到来自编译器的警告
Compiler output:
func.c: In function 'solution':
func.c:19:14: warning: 'left' may be used uninitialized in this function [-Wmaybe-uninitialized]left += val;
^func.c:13:15: warning: 'right' may be used uninitialized in this function [-Wmaybe-uninitialized]
right += A[i];
^
关于c - 磁带平衡 Codility 培训 : Why Does It Return 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33928628/
情况:使用 Rspec、FactoryGirl 和 VCR 测试 Rails 应用程序。 每次创建用户时,都会通过 Stripe 的 API 创建关联的 Stripe 客户。测试时,添加 VCR.us
我收藏了大约 2.5GB 的 VCR 磁带 https://github.com/vcr/vcr .我正在使用 3.0.1 版。 我需要不时重新录制磁带。但是,由于运行测试比仅仅触发请求并将答案记录在
我在 HDFS 上有 1TB 的数据。我的本地磁盘上没有那么多空间来将数据传输到本地。 有什么方法可以将HDFS数据直接写入外接硬盘吗? 最佳答案 如果磁盘映射到你的机器上,你应该可以使用 -get
我正在寻找一种从 DV AVI 文件中检索或提取录制时间戳的方法。时间戳应该是 AVI 文件元数据的一部分。这些文件最初是从 DV 导入到 PC 并采用 AVI 包装器中的 DV 格式。 提供 API
正在查看磁带+点击视频并尝试让它发挥作用。 操作系统:Windows 7Git Bash shell node main.js | ./node_modules/.bin/tap-spec stdou
我是一名优秀的程序员,十分优秀!