Objective c 我希望程序生成一个值,但它没有这样做,并以响应代码0退出
嗯,我今天一直在做euler项目的问题,我看到了问题3,并开始在目标C中编程,它似乎不能正常工作。下面是我的代码,请检查,让我知道我犯了什么错误。我目前使用的是Xcode,脚本的目的是返回输入的最大素数因子Objective c 我希望程序生成一个值,但它没有这样做,并以响应代码0退出,objective-c,xcode,compiler-errors,runtime-error,Objective C,Xcode,Compiler Errors,Runtime Error,嗯,我今天一直在做euler项目的问题,我看到了问题3,并开始在目标C中编程,它似乎不能正常工作。下面是我的代码,请检查,让我知道我犯了什么错误。我目前使用的是Xcode,脚本的目的是返回输入的最大素数因子 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int number,primefactor, x; bool isP
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
int number,primefactor, x;
bool isPrime;
NSLog (@"Please enter a number:");
scanf ("%i", &number);
for (primefactor = number;primefactor > 0;--primefactor)
{
if (number % primefactor == 0)
{
for (x = 2;x < primefactor;++x)
{
if (primefactor % x == 0)
{
isPrime = FALSE;
}
}
}
if (isPrime == TRUE)
{
NSLog (@"%i", primefactor);
break;
}
}
}
return 0;
}
#导入
int main(int argc,const char*argv[]
{
@自动释放池{
整数,素数因子,x;
bool-isPrime;
NSLog(@“请输入一个数字:”);
scanf(“%i”和编号);
对于(primefactor=number;primefactor>0;--primefactor)
{
如果(数字%primefactor==0)
{
对于(x=2;x
我希望程序返回一个值,但它没有返回值,并以0退出。您可以在处签出输出代码中的错误是,
isPrime
必须在每次之前设置为TRUE
检查primefactor
候选项:
for (primefactor = number;primefactor > 0;--primefactor)
{
if (number % primefactor == 0)
{
bool isPrime = TRUE; // <---- HERE
for (x = 2;x < primefactor;++x)
{
if (primefactor % x == 0)
{
isPrime = FALSE;
}
}
if (isPrime == TRUE)
{
NSLog (@"%i", primefactor);
break;
}
}
}
for(primefactor=number;primefactor>0;--primefactor)
{
如果(数字%primefactor==0)
{
bool isPrime=TRUE;//“其功能不正确”-这是一个非常糟糕的问题描述。你的输入数据是什么,你得到了什么结果,你期望得到什么?我很抱歉,但为什么这个问题-1edWell,现在有人能给我一个更好的算法吗,它花费了太多的时间没有代码,只有algorithmI恢复了你上次的编辑,因为它完全改变了问题(并使未来的读者无法理解给定的答案)。您最初的问题是为什么上面的代码不能按预期工作。要求更好的算法是一个完全不同的问题,应该单独发布。我很抱歉,但是@MartinR做了很好的尝试,但是代码仍然不工作,如果您输入25,它仍然不会返回任何结果,因为在Xcode中所有布尔值都被预先初始化为TRUE.Source:在目标C中编程。但是,我仍然尝试将其初始化为TRUE。25的预期输出为5Plus,我给出了您要求的图像,并解释了您要求的错误for@user3486277:我已经测试了该代码,13195的输出为29,25的输出为5,正如预期的那样。-注意,我移动了一个如果(isPrime==TRUE)
部分进入for-loop。这很奇怪,事实上,我做了和你说的一样的事情,但是没有用。顺便说一句,还有一个是为了你的声誉。不,等等,我不能这样做,这样做需要15次回购