问题标签 [cs50]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1425 浏览

c - C 中的 Trie 实现:分段错误

我目前正在哈佛做 CS50,目标是以最快的方式将字典加载到任何数据结构中。对于这个问题集,我使用的是 Trie。

我的代码背后的逻辑如下:

  1. 一次读一个字符。
  2. 如果字符已经存在,则检查 trie 的子节点,如果它等于 NULL,我们为其分配一些空间。
  3. 光标设置为我们刚刚分配空间的子节点。
  4. 如果我们到达一个单词的结尾(“\n”),我们将布尔值设置为 true 并将光标完全重置为其初始值(我们之前存储在光标->根中)。

我尝试了几种实现,其中一些有一些我不满意的逻辑错误,当我有一本大字典时,有些给我带来了分段错误。

下面是我最新实现的代码,基本上发生的情况是,将第一个单词加载到 trie 结构中是可以的,但在第二个时它失败了。然后问题在于我将新节点值设置为子节点(我们为其分配了一些空闲空间)。这背后的逻辑显然是连接树并移动到下一个节点。这是我认为错误的代码:

但问题是,它在我的其他一些实现中有效,只是在这个实现中它突然停止工作,并在第一个单词后给我一个分段错误。正如我所说,我是编码的初学者,所以请赐教并批评我的实现!谢谢一堆。

编辑:

我的另一个问题是为什么我在当前代码中无法检测到 Null Terminator \0 但它可以检测到新行 \n?我需要能够检测空终止符才能获得正确数量的单词。关于什么是错的任何建议?

0 投票
2 回答
404 浏览

c - CS50 - 调用方法时出现浮点异常

我是一名新程序员,试图通过为 CS50 编写 pset 来自学。我编写了以下代码,它可以正常工作。

我想尝试将 vencipher 拆分为一些不同的方法,以尝试提高代码的可读性。这就是我所做的

较新的代码可以编译,但是当我运行它时,我得到一个“浮点异常”,根据我的研究,这是模除以 0 的结果。我多次搜索我的代码,但找不到任何除以的实例0. 我想知道是否有人可以帮助我找到我的错误并向我解释导致浮点异常的原因。

0 投票
2 回答
180 浏览

c - C'for'循环只循环一次

我在这里浏览了“for”循环问题的代码。我检查了我的分号等,但仍然无法弄清楚为什么我的循环只循环一次。

代码如下,谢谢。

0 投票
1 回答
1738 浏览

c - C:用凯撒密码加密的符号输出,为什么?pset2 cs50

这是 edx.org 中 cs50x 课程的 pset2 中的凯撒密码加密问题。

我已经用另一种算法解决了这个问题,但这是我的第一次尝试,我仍然很好奇为什么所有这些符号都出现在凯撒文本的右侧。

IE。我输入文本“ Testing”,输出为“ Fqefuz�����w����l��B��”,但答案是正确的,没有符号。

谁能给我解释一下?

0 投票
1 回答
518 浏览

c - stuck with the vigenere.c

I am stuck in this example. Whenever I put the keyword 'bacon' I get the wrong answer. Any idea why this is happening? I can't find the bug and I have tried a lot. Can you please help me?

When I run this: ./vigenere bacon and input the text Meet me at the park at eleven am the answer should be Negh zf av huf pcfx bt gzrwep oz, but instead I get Negh ne og tjs qaty bt syfvgb bm

Update: I made some changes as suggested by the comments but still having the same problem.

0 投票
4 回答
949 浏览

c - 使用未声明的标识符“o”

// 我不断收到这个错误:

使用未声明的标识符“o”。对于 (int p = 0; p <= o; p++) ^

我在其正上方的行中声明了“0”,我似乎无法弄清楚为什么它给了我这个错误。请帮忙,我对c非常陌生,非常感谢任何见解。谢谢!

0 投票
3 回答
232 浏览

c - CS50 Vigenere 密码输出错误

我正在通过 EDX 学习哈佛的 CS50 课程(仅对我自己而言,这不是评分工作)。我来自 PSET2 的 Vigenere 密码给出了错误的输出 - 例如,一个密钥和一个 的输入都a应该导致输出a,而是给出t. 但是,我无法确定问题出在哪里。

0 投票
1 回答
2464 浏览

c - 我的 do/while 循环中有一段时间,但它仍然告诉我我没有

这是我的代码

这是我的错误

0 投票
2 回答
70 浏览

c - 遍历字符串与打印特定位置时的不同结果(C)

我正在学习 C,strlen()我遇到的问题是,如果我遍历字符串直到并包括 —而如果我 print array[strlen(array)],我什么也得不到(空字符)。到底是怎么回事?

0 投票
2 回答
5068 浏览

c - 在 C 中使用 getchar 存储多个字符的用户输入

作为一个菜鸟,我一直在关注哈佛 CS50 课程。有一次它演示了一个 C 程序,该程序让用户输入他们的姓名,然后显示包含此输入的基本问候语。但是,CS50 演示似乎在序言中使用了一个特殊行,它允许在 C 中使用带有“string”和“GetString()”的字符串。

没有这个,我一直在尝试使用 getchar():

我应该从用户输入的任何内容中取回第一个字符,但是如果我尝试将其延长为带有 char name[] 的整个字符串的 char 数组,我会在编译时收到“不正确的初始化”错误。然而,我在任何地方都看到提到 getchar(),像这样增加数组容量似乎是解决方案。我也在网上看到了 strcpy 的使用,但我一直无法完成这项工作。

我是否忽略了一些非常简单的事情?对此有任何见解,谢谢。