- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
11小时前关门了。
Improve this question
我是C编程语言的初学者,主要来自Python/MATLAB。我想试着找出下面这段代码的问题所在:
#include <stdio.h>
#include <math.h>
int PSR(int n) {
int psr = 1;
// psr_up = int(sqrt(double psr)));
for (int i = 1; i < 200; i++) {
if (n % i == 0) {
psr = i;
}
}
return psr;
}
目前,当我尝试编译时,我不断收到以下错误:
Undefined symbols for architecture arm64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我想看看是否有人能给我指出正确的方向,因为这似乎是基本的语法,我相信我正在严格遵循CodeAcademy对for
循环的建议。
编辑:显然,您需要一个main()函数来编译它。
// Project Euler Problem 266
// https://projecteuler.net/problem=266
#include <stdio.h>
#include <math.h>
int PSR(int n) {
int psr = 1;
// psr_up = int(sqrt(double psr)));
for (int i = 1; i < 200; i++) {
if (n % i == 0) {
psr = i;
}
}
return psr;
}
int main() {
printf("%d", PSR(3102));
}
现在的问题是它输出141%
,而我期望的是47
。
1条答案
按热度按时间bxjv4tth1#
首先你需要在找到第一个除数后从PSR返回。其次你需要添加一个新行。