动漫少女怀孕图片:搞不懂这个题,

来源:百度文库 编辑:高考问答 时间:2024/04/26 17:00:15
#include<stdio.h>
int isprime(int m)
{
int i;
for(i=2;m%i!=0;i++);
return i==m;
}
main()
{
int m=5;
while(isprime(m))
{
printf("yes!%d\n",m);
m++;
}
printf("not!%d\n",m);
getch();
}
这个题的for语句后为什么会有‘;’号,这是我第一次见到,有分号的时候结果是:yes!5 not!6,在没有‘;’的时候结果是:not!5,这是什么意思,我是第一次遇到这种题,求人帮忙啊!!!
还有那后面的return i==m又是什么意思?如果for是个空循环只执行一次,那当m==5的时候在isprime是怎么取得返回值的?各位帮帮忙啊!

楼上两位在说什么啊,简直是在误人子弟。
其实也没有什么,有‘;’号表示该循环没有循环体或者是循环体是空语句什么也不执行(c语言允许空语句),相当于只是i在自增,当m%i!=0为假时退出循环。
第一次调用int isprime(int m)时,m=5,循环for(i=2;m%i!=0;i++)退出时,i=5;则函数返回1(i==m值是1)。while(isprime(m))条件为真执行输出yes!5。m++,m=6。
第二次调用int isprime(int m)时,m=6,循环for(i=2;m%i!=0;i++)退出时,i=2;则函数返回0(i==m值是0)。while(isprime(m))条件为假则退出循环。执行输出not!6。
若没有分号,则:第一次调用int isprime(int m)时,m=5,执行循环体return i==m 时返回0(因为此时i=2),结束函数调用。while(isprime(m))条件为假则退出循环。执行输出not!5。

for 后面的";"表是是个空循环,说白了,这句话只运行了for语句的括号内的内容一次,然后就跳出循环,其它什么事儿也不干.

很简单,;也是一条语句,虽然什么都不做,但和没有是两回事。有“;”时,for循环执行1次,而没有“;”时,一次都不执行,直接返回main函数了

赞yqz_b
对c很熟悉啊