谁能帮我看看这个程序啊,具体点的,好让我对做这种题目有些具体的概念理解,我快崩溃了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
嵌套循环你知道吧?它跳出了一个循环以后还有一个循环。外循环是一个死循环,内循环是一个判断它是否是素数,如果不是,就跳出本次(内)循环,重新来次外循环,当然,先要+1,如果是,就直接往下执行。然后最后的那个错是if(k<=i)应该改成if(k<i),因为如果k=i,那就有可能不是素数了
#include <stdio.h>
int fun(int m)
{ int i, k ; //定义局部变量i和k
for (i = m + 1 ; ; i++) //这个是在遍历所有大于形参m的数
{
for (k = 2 ; k < i ; k++) //这个循环是在循环所有小于i的数,目的是查找i是不是有其他因数
/**************found**************/
if (i % k == 0) //如果i能被k整除,说明i不是一个素数;如果i在循环执行完直到k=i跳出循环之前依然不能被k整除就说明i是一个素数
break ; //i 不是素数就执行中途跳出循环,这个时候k是满足k<i的
/**************found**************/
if (k == i) //当k等于i说明是自然循环完毕的,说明i是一个素数,所以返回i的值,如果i不等于k,那么说明是中途跳出循环的,就不能返回,而是跳出内循环继续外循环
return(i);
}
}
void main()
{
int n ; //定义一个变量n
n = fun(20) ; //调用函数fun,实参为20
printf("n=%d\n", n) ;
}