您的位置:首页 > 编程语言 > C语言/C++

C语言进阶3

2015-03-15 00:35 106 查看
求任意输入两个正整数之间的素数个数及相加的和(未使用函数)

#include <stdio.h>

int main()
{
int m,n;
int sum = 0;
int cnt = 0;
int i;

scanf("%d %d",&m,&n);
if(m==1){
m=2;
}
for(i=m;i<=n;i++)
{
int isPrime = 1;
int k;
for(k=2;k<i-1;k++)
{
if(i%k==0)
{
isPrime = 0;
break;
}
}
if(isPrime==1)
{
sum+=i;
cnt++;
}
}
printf("%d %d \n",cnt,sum);
return 0;
}


缺点:所使用大括号太多,容易匹配混乱,而且太多循环嵌套,容易出错,不如使用函数调用。

#include <stdio.h>

int isPrime(int i){
int ret = 1;
int k;
for(k=2;k<i-1;k++)
{
if(i%k==0)
{
ret= 0;
break;
}
}
}

int main()
{
int m,n;
int sum = 0;
int cnt = 0;
int i;

scanf("%d %d",&m,&n);
if(m==1){
m=2;
}
for(i=m;i<=n;i++)
{

if(isPrime(i))
{
sum+=i;
cnt++;
}
}
printf("%d %d \n",cnt,sum);
return 0;
}


使用函数来做这道题,简化了一些,能使程序更灵活,结构性更好,可读性也变强了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: