c語言判斷素數(shù)的函數(shù)程序:
創(chuàng)新互聯(lián)成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目網(wǎng)站建設、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元文成做網(wǎng)站,已為上家服務,為文成各地企業(yè)和個人服務,聯(lián)系電話:13518219792
經(jīng)分析,以上代碼使用flag的值來判斷輸入的n是否為素數(shù),flag=1,n為素數(shù);flag=0,n不是素數(shù)。完善if條件語句,第一個if,主函數(shù)中的if調(diào)用函數(shù),需要填入一個參數(shù),即prime(n);第二個if,是判斷什么情況下flag=0,即輸入的整數(shù)不為素數(shù),即(n/i==0),余數(shù)為0,可以整除;最后返回flag的值,returnflag
但是經(jīng)過運行可以知道,n=4的時候,程序判斷4是素數(shù),明顯是錯誤的,n取0和1的時候同理,程序存在漏洞。分析得知,在定義函數(shù)的過程中,for循環(huán)條件語句,i=0,如果為負整數(shù),另加判斷條件,略)
在c語言中用沒有函數(shù)判定一個變量的類型,可以使用sizeof來判斷變量大小。
示例:
#include stdio.h
#include stdlib.h
int main(int argc,char **argv)? ? ? ? ?//主程序
{
//對C語言內(nèi)置類型的所占字節(jié)數(shù)的測試
printf("size of char is: %d\n",sizeof(char));? ? ? ?//字符型數(shù)據(jù)所占字節(jié)數(shù) 、
printf("size of short is: %d\n",sizeof(short));? ? ?//短整形數(shù)據(jù)所占字節(jié)數(shù)
printf("size of int is: %d\n",sizeof(int ));? ? ? ? //整形數(shù)據(jù)
printf("size of short int is: %d\n",sizeof(short int)); //短整形
printf("size of long int is: %d\n",sizeof(long int));? ? //長整形數(shù)據(jù)
printf("size of float is: %d\n",sizeof(float));? ? ? ? ? //浮點型數(shù)據(jù)
printf("size of double is: %d\n",sizeof(double));? ? ? ? //雙精度數(shù)據(jù)
//對字符及字符串數(shù)組所占字節(jié)數(shù)的測量
char a[] ={'a','b','c','d','e'};
printf("size of a[] is: %d\n",sizeof(a));? ? ? ? ? ? ? ?//輸出數(shù)組a[]所占字節(jié)數(shù)
char b[]={"abcde"};? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化字符串b
printf("size of b[] is: %d\n",sizeof(b));? ? ? ? ? ? ? ?//數(shù)組b[]
char c[][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}};? //初始化二維字符型數(shù)組
printf("size of c[][] is: %d\n",sizeof(c));? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//二維數(shù)組c所占字節(jié)數(shù)
printf("size of c[0] is: %d\n",sizeof(c[0]));? ? ? ? ? ? ? ? ? ? ? ? ? ?//二維數(shù)組中的某行所占的字節(jié)數(shù),例如第0行
printf("size of c[0][0] is: %d\n",sizeof(c[0][0]));? ? ? ? ? ? ? ? ? ? ?//某行某個元素,例如第0行第0個元素
//對指針所占字節(jié)數(shù)的測量
char *p=0;
printf("size of *p is: %d\n",sizeof(p));? ? ? ? ? ? ? ? ? ? ? ?//字符型指針
system("pause");
return 0;
}
擴展資料
使用sizeof()計算數(shù)組長度
將sizeof用于 expr是并沒有計算expr的值。特別是在sizeof *p中,指針p可以是一個無效地址,因為不需要對p做解引用操作。
對char類型或值為char類型的表達式做sizeof操作結(jié)果為1。對引用類型做sizeof操作,將返回存放此引用類型對象所需的內(nèi)存空間大小。
對指針做sizeof操作,將返回存放指針所需的內(nèi)存大小,注意,如果要獲取該指針指向?qū)ο蟮拇笮?,則必須對該指針進行解引用。對數(shù)組做sizeof操作等效于對其元素做sizeof操作的結(jié)果乘上數(shù)組元素的個數(shù)。
因為sizeof返回整個數(shù)組在內(nèi)存中的存儲長度,所以用sizeof數(shù)組的結(jié)果初一sizeof其元素類型的結(jié)果,即可求出數(shù)組元素的個數(shù):int sz = sizeof(ia)/sizeof(*ia);
通常將8位的塊作為一個字節(jié),32位或4個字節(jié)作為一個 “字”。一般的short為半個機器字長,int為一個機器字長。
這是我以前寫過的判斷質(zhì)數(shù)的程序,希望對你有幫助。
#includestdio.h
int
prime(int
a)
{
int
i;
for(i=2;i=a/2;i++)
{
if(a%i==0)
break;
}
if(ia/2)
return
1;
else
return
0;
}
int
main(void)
{
int
x;
printf("請輸入一個整數(shù):");
scanf("%d",x);
if(prime(x))
printf("%d為素數(shù)\n",x);
else
printf("%d不是素數(shù)\n",x);
}
主要是加了break
/判斷是不是素數(shù)
#includestdio.h
int prime(int a);//函數(shù)聲明
int main()
{
int n,i;
scanf("%d",n);
if(prime(n)==1) //return返回值1
printf("prime");
else
printf("not prime") ;
}
int prime(int a)
{
int i;
for(i=2;ia;i++)
if(a%i==0)
return 0;//a%i==0不成立
else
return 1;//a%i==0成立
}
擴展資料:
素數(shù)的算法
1、素數(shù):除了1和本身外無法被其他自然數(shù)整除的數(shù),叫做素數(shù),也稱質(zhì)數(shù),如:2,3,5,7一系列。
2、合數(shù):比1大但不是素數(shù)的數(shù)稱為合數(shù),如:8,9,10一系列。
3、特殊的數(shù)字:1和0既不是素數(shù)也不是合數(shù)。
4、算法:? 1確定性算法? ?2隨機性算法? 3Eratosthenes算法。
分享名稱:c語言的判斷函數(shù) c語言判斷函數(shù)字符串長度
路徑分享:http://muchs.cn/article26/dossocg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、動態(tài)網(wǎng)站、標簽優(yōu)化、移動網(wǎng)站建設、建站公司、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)