gpt4 book ai didi

c - 对我检查素数的C程序的一些疑问

转载 作者:行者123 更新时间:2023-11-30 19:31:15 24 4
gpt4 key购买 nike

这是一个简单的函数,用于检查给定数字是否为素数,并且适用于除 2 和 3 之外的大多数情况(因为它不进入 for 循环),但它们已经是素数,因此不需要检查并且该标志应该保持不变。但是请注意我如何将 return 语句放入 for 循环中(这是错误的),因此对于整数 2 和 3,因为它们不进入循环,所以函数应该返回 0(或者我假设是这样)但是他们总是返回 1.为什么?是因为程序错误终止吗?那为什么总是1呢?它可以是任何非零整数,对吗?是否有 main() 本身返回 1 的情况?请澄清我的疑问。使用的 IDE 是 Dev-C++,它使用 tdm-gcc 4.9.2 编译器。

int checkPrime(int n)
{
int i, isPrime = 0;

for(i = 2; i <= n/2; ++i) {
if(n % i == 0) {
isPrime = 1;
break;
}
return isPrime;
}
}

最佳答案

您的return语句位置错误。您应该将其放在 for 循环之外。而且在编程中,1 代表真,0 代表假,所以你问 n 是否是素数,而对于 17,你的函数返回 0(假),但它是素数:

int checkPrime(int n)
{
int i, isPrime = 1;

for(i = 2; i <= n/2; ++i) {
if(n % i == 0) {
isPrime = 0;
break;
}
}
return isPrime;
}

关于c - 对我检查素数的C程序的一些疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49165564/

24 4 0
文章推荐: C# 小数类型相等
文章推荐: c - 数组的洗牌算法
文章推荐: 加密库和 block 大小
文章推荐: c# - 环回/本地主机问题
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com