gpt4 book ai didi

c - 这里的返回是如何进行的?

转载 作者:行者123 更新时间:2023-11-30 15:46:47 25 4
gpt4 key购买 nike

新问题:但是为什么表达式 from n == number, from firstFactorPtr == Factor1 ?

有人可以向我解释一下这是如何工作的吗:

return ( factor == 1 );

这会返回到“main”,其中“factor == 1”,为什么“isPrime”返回true?
为什么如果我们“*firstFactorPtr”和“*secondFactorPtr”它会返回 false ?它正在搜索素数和非素数。
“main”中没有“int因子”,怎么能用任意表达式返回到“main”呢?

 #include <stdio.h>
#include <stdbool.h>
#include <math.h>


bool Factor( int number, int *firstFactorPtr, int *secondFactorPtr );

int main(int argc, const char * argv[])
{
int n;

for ( n = 5; n <= 20; n++ ) {
bool isPrime;
int factor1, factor2;

isPrime = Factor( n, &factor1, &factor2 );
if ( isPrime )
printf( "the number %d is prime\n", n );
else
printf( "the number %d has %d and %d as factors\n", n, factor1, factor2 );
}

return 0;
}


bool Factor( int number, int *firstFactorPtr, int *secondFactorPtr )
{
if ( number < 1 )
return false;

int factor;
for ( factor = sqrt(number); factor > 1; factor-- ) {
if ( (number % factor) == 0 ) {
break;
}
}

*firstFactorPtr = factor;
*secondFactorPtr = number / factor;
return ( factor == 1 );
}

最佳答案

它返回 boolean 表达式“因子等于1”的结果,即truefalse .

这个例程还有一个副作用:它将找到的阶乘存储在 header 中两个 int * 指向的列表中。

本质上,它返回 true如果因子是素数 -- 循环一直倒数到“1” --, false否则。

关于c - 这里的返回是如何进行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18036083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com