重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
int is(int number)
目前成都创新互联公司已为千余家的企业提供了网站建设、域名、网络空间、网站改版维护、企业网站设计、石林网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
{
int m=2,k=0;
while(mnumber) /*从数学角度讲这里比较到number开方就可以了sqrt(number)*/
{
if((number%m)!=0)
m++;
else
k++;
}
return k; /*这里的判断不完整,*/
}
/*返回0表示有约数,1表示质数*/
int is(int number)
{
int m=2,k=0;
while(m=sqrt(number)) /*从数学角度讲这里比较到number开方就可以了sqrt(number)*/
{
if((number%m)==0)
return 0; /*直接返回就ok*/
else
m++;
}
return m==sqrt(number); /*这里如果没有找到约数那么必然是m==sqrt(number),/
}
你写的思路稍微有点问题,逻辑上也有点问题,但是大体思路正确。你对比下我写的,再看下我改的,你多思考思考,希望你有所收获
1、首先打开C语言的编辑软件,这里是使用VS2017版,在c语言的文件中写入头文件和主函数备用:
2、首先是用scanf函数定义一个输入数字的功能,然后判断完数,通过取余(%)的方法来进行判断。如果判断出来取余结果为0,那么就把这些因子全部加起来,得到因子的和和与n进行比较,如果相等,那么就是完数,反之不是完数;最后需要输出结果:
3、最后使用快捷键crtl+F5编译调试一下程序,打开的命令行输入一个数字,按下回车后屏幕上就会显示该数是否为完数了。以上用C语言判断完数的操作:
#includestdio.h
#includestring.h
int str_num(char * source,char * search);
void main()
{
int i;
char string[81];//源字符串
char * str2="is"; //要统计个数的字串
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;
}