c語言判斷素?cái)?shù)的函數(shù)程序:

樂平ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
經(jīng)分析,以上代碼使用flag的值來判斷輸入的n是否為素?cái)?shù),flag=1,n為素?cái)?shù);flag=0,n不是素?cái)?shù)。完善if條件語句,第一個(gè)if,主函數(shù)中的if調(diào)用函數(shù),需要填入一個(gè)參數(shù),即prime(n);第二個(gè)if,是判斷什么情況下flag=0,即輸入的整數(shù)不為素?cái)?shù),即(n/i==0),余數(shù)為0,可以整除;最后返回flag的值,returnflag
但是經(jīng)過運(yùn)行可以知道,n=4的時(shí)候,程序判斷4是素?cái)?shù),明顯是錯(cuò)誤的,n取0和1的時(shí)候同理,程序存在漏洞。分析得知,在定義函數(shù)的過程中,for循環(huán)條件語句,i=0,如果為負(fù)整數(shù),另加判斷條件,略)
我以前寫的程序,絕對(duì)正確
#include stdio.h
#include stdlib.h
#include math.h
void main()
{
long num,nu;
long number();
int a=0;
while(1)
{
printf(\"1.判斷是否是素?cái)?shù)\\n2。退出\\n請選擇:\");
scanf(\"%d\",a);
switch(a)
{
case 1:
printf(\"\\n請輸入判斷數(shù)字\");
scanf(\"%ld\",num);
nu=num;
num=number(num);
if(num!=0)
printf(\"%ld是素?cái)?shù)\\n\",num);
else
printf(\"%ld不是素?cái)?shù)\\n\",nu);
printf(\"\\n\\n\");
break;
case 2:
exit(0);
default:
printf(\"\\n您輸入的有錯(cuò)誤,請重新輸入!\\n\\n\");
break;
}
}
}
long number(n)
long n;
{
static long k,i;
static long m;
k=(long)sqrt(n);
for(i=2;i=k;i++)
if(n%i==0)
break;
if(i=k+1)
m=n;
else
m=0;
return(m);
}
還有一個(gè)錯(cuò)誤,C語言中沒有bool類型,默認(rèn)返回值是0,你可以一個(gè)一個(gè)類型的函數(shù)檢測、float,沒有返回值時(shí)、double類型的函數(shù),你這個(gè)程序不只是邏輯不能那樣說,但是如果是long或者char型時(shí),返回值就不是0了,如果是返回值int。
另外多說一句、算法錯(cuò)了
文章題目:c語言素?cái)?shù)判斷子函數(shù) c語言判斷素?cái)?shù)的函數(shù)
當(dāng)前鏈接:http://www.chinadenli.net/article42/dopgiec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、ChatGPT、電子商務(wù)、、網(wǎng)站建設(shè)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)