不好意思哦,菜菜菜菜鸟刚开始学,所有这个问题搞不懂,以下两个程序,功能都是输出1到某个数之间所有的素数,第一个是不用函数,第二个是用函数的,老师说用第一个的话要写好多遍,用第二个的话只需要写一遍,要用的话再调用就可以了,可是我调试了以下明明结果是一样的呀,为什么呢?
1、
#include<stdio.h>
int main(void)
{
int val;
int i;
int j;
scanf("%d",&val);
for(i=2;i<=val;++i)
{
for(j=2;j<i;++j)
{
if(0==i%j)
break;
}
if(j==i)
printf("%d\n",i);
}
return 0;
}
2、
#include<stdio.h>
bool IsPrime(int n)
{
int i;
for(i=2;i<m;++i)
{
if(0==m%i)
break;
if(i==m)
printf("%d\n",m);
}
int main(void)
{
int val;
int i;
int j;
scanf("%d",&val);
for(i=2;i<=val;++i)
{
if(IsPrime(i))
printf("%d\n",i);
}
return0;
}
首先,你的函数代码有点问题
bool IsPrime(int n)有了函数可以让你的代码可读性更强,而且在编程调试时,方便定位问题
你老师的说法,可能是指,如果有多处调用相同的功能时,没有函数会写多遍相同的代码,而有了函数,就只需要直接调用函数就可以了。