问题标签 [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 投票
3 回答
12330 浏览

c - tolower() 函数在 C99 中不起作用

我正在使用哈佛的 CS50 设备并尝试将字符设为小写。我正在尝试使用该tolower()功能,但是当我尝试使用它时,我收到了消息implicit declaration of function 'tolower' is invalid in C99。任何人都想详细说明我为什么会收到此消息。我已经包括stdio.h以及string.h.

0 投票
3 回答
771 浏览

c - KERN_INVALID_ADDRESS 让我难过

我在尝试运行调试器时不断收到此错误:

这是我的代码:

我可以毫无错误地编译代码,并且它可以正常工作。我正在运行调试器以进入for循环并查看数学在做什么以更好地理解它。

0 投票
1 回答
109 浏览

c - 数学运算麻烦

对某些人来说,这似乎是一个非常简单的解决方案,但我一直试图弄清楚它有一段时间了,它困扰着我。

我很难想出解决方案数学从来都不是我的强项。如果和的值char c最后应该等于 79 。p[i]=72 or 'H's2[i]=5

此操作非常有效,但我试图了解发生了什么,所以我尝试使用普通计算器进行操作并不断得出错误的答案。正确的操作顺序到底是什么?值应该是什么?

这是我到目前为止有效的完整源代码:

我做这个操作的方式是:

我显然知道我的数学是错误的,但我认为当我通过调试器运行操作时我做对了,sum = 14并且char c = 79 or 'O'应该这样做。

0 投票
3 回答
349 浏览

c - 我的简短 C 代码中的小错误。为什么?

我不明白为什么这适用于 90% 的输入,但不适用于其他输入。它的目的是告诉你有多少硬币可以换回来。大多数测试金额都可以正常工作,但如果您输入 4.20(或 4.20 美元),它会返回 23 个硬币……应该是 18 个硬币(16 个硬币和 2 个镍币)。错误在哪里?这是我的代码:

0 投票
1 回答
107 浏览

c - Islower 功能故障

我正在上 CS50x 课程,但我遇到了一个小故障。我问他们发生了什么事,没有人知道发生了什么事。

每当我尝试打印小写 f 时,它总是显示为 ?。尝试将 23 作为参数和abcdefghijklmnopqrstuvwxyz输入。搞砸了 这是代码:

0 投票
2 回答
120 浏览

c - C Array 的行为因位数不同而不同,为什么?

我有一个代码,它从输入中获取一个数字,然后将其放入数组中,然后打印所述数组。但是有一个很奇怪的副作用,当我输入 13 位数字时,我的最后一位数字是错误的。如果我输入 15 或 16 位数字,一切都很好。我无法理解发生了什么!这是代码:numberDigits 是 12、14 或 15,取决于 number 的位数。

编辑:我的号码被初始化为 long long int。这是验证位数的检查:

编辑:上次更新,是的,我已经更新了我的代码,它可以按照您的建议正常工作,但我需要了解为什么我的代码不起作用。我认为也许 array[12] 实际上包含 12 个元素而不是 13,当我用它访问元素 array[12] 时,我从内存中得到了一些随机值,但是为什么 array[14] 或 array 不会发生这种情况[15] 分别有 15 位和 16 位数字。以及为什么当您在错误位置访问数组时程序不会崩溃。下面的原始问题带有不起作用的旧代码。

编辑:这是感兴趣的人的完整清单。

0 投票
1 回答
549 浏览

c - C:用户输入字符串,包括“'”-字符

我需要读入用户输入和用户凯撒密码来加密它。但是在阅读用户输入时我遇到了以下问题,如果我输入例如,我的程序不会终止:“ ./caesar 3 I'm”问题似乎是字符'。该程序适用于其他输入。

0 投票
1 回答
197 浏览

c - 使用 C 中函数的返回值

我的目标是制作一个 Vigenere 密码。我试图通过从 argv 获取密钥,从用户获取字符串,然后通过我创建的一个函数传递消息和密钥,该函数将它们组合并在打印之前返回新值。出于某种原因,它只是在打印密钥。我认为这与新函数以及我如何尝试使用返回值有关。这是代码:

0 投票
1 回答
657 浏览

c - 无限循环,应该是在寻找 JPEG 标头

再一次,我正在尝试编写一个从 .raw 文件复制 jpeg 的程序。它发现第一个标头(0xffd8ffe0 或 0xffd8ffe1)正常,然后继续将标头写入 outptr,然后继续以 512 位块复制 jpeg 数据。我尝试编写 do-while 循环,以便它读取 512 位数组并检查每个数组以确保它不包含新标头(在数组的前四个字节中),这将使它停止并再次启动while循环,复制下一个,但它似乎永远不会找到另一个标题,即使我知道它在那里,它应该立即出现在最后一个512位块之后。

}

0 投票
2 回答
4962 浏览

c - 将头文件添加到 Xcode

我正在尝试将 C 库添加到 Xcode。我从一个在线 C 类下载了库,压缩文件包含两个文件:cs50.ccs50.h.

我使用以下命令安装了这些文件:

在构建项目时,我收到以下错误消息:

这就是我在程序中引用头文件的方式:

如果我不包含路径,我会收到一条找不到文件的消息。

我的 Xcode 版本是:版本 4.5.2 (4G2008a),我正在运行 OS X 10.7.5。

感谢您的任何建议。

更新:

实际错误信息

将 -lcs50 添加到构建阶段