int is(int number)
目前成都創(chuàng)新互聯(lián)公司已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計、石林網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
{
int m=2,k=0;
while(mnumber) /*從數(shù)學(xué)角度講這里比較到number開方就可以了sqrt(number)*/
{
if((number%m)!=0)
m++;
else
k++;
}
return k; /*這里的判斷不完整,*/
}
/*返回0表示有約數(shù),1表示質(zhì)數(shù)*/
int is(int number)
{
int m=2,k=0;
while(m=sqrt(number)) /*從數(shù)學(xué)角度講這里比較到number開方就可以了sqrt(number)*/
{
if((number%m)==0)
return 0; /*直接返回就ok*/
else
m++;
}
return m==sqrt(number); /*這里如果沒有找到約數(shù)那么必然是m==sqrt(number),/
}
你寫的思路稍微有點問題,邏輯上也有點問題,但是大體思路正確。你對比下我寫的,再看下我改的,你多思考思考,希望你有所收獲
1、首先打開C語言的編輯軟件,這里是使用VS2017版,在c語言的文件中寫入頭文件和主函數(shù)備用:
2、首先是用scanf函數(shù)定義一個輸入數(shù)字的功能,然后判斷完數(shù),通過取余(%)的方法來進(jìn)行判斷。如果判斷出來取余結(jié)果為0,那么就把這些因子全部加起來,得到因子的和和與n進(jìn)行比較,如果相等,那么就是完數(shù),反之不是完數(shù);最后需要輸出結(jié)果:
3、最后使用快捷鍵crtl+F5編譯調(diào)試一下程序,打開的命令行輸入一個數(shù)字,按下回車后屏幕上就會顯示該數(shù)是否為完數(shù)了。以上用C語言判斷完數(shù)的操作:
#includestdio.h
#includestring.h
int str_num(char * source,char * search);
void main()
{
int i;
char string[81];//源字符串
char * str2="is"; //要統(tǒng)計個數(shù)的字串
gets(string);
i=str_num(string,"is");
printf("字符串%s中共有%d個%s",string,i,str2);
putchar('\n');
}
int str_num(char * source,char * search)
{
int i=0;
while((source=strstr(source,search))!=NULL)
source++,i++;
return i;
}