int
isPrime(int n)那部分好像不行,输入3,30,只打印3, 后面就通不过,大侠们帮忙看看啊,#include<stdio.h>
#include <conio.h>
#include <math.h>
int isPrime(int);
int findPrime (int, int ) ;
int findSquare(int,int);
int sum;
int main (void)
{
int x,y,sumPrime;
printf("Enter two numbers\n");
scanf("%d %d",&x,&y);
while(x <= y)
{
printf("Prime: ");
sumPrime=findPrime( x, y);
printf("\nSquare: ");
findSquare(x,y);
printf("\nsum of all primes and squares:%d",sum);
printf("\nEnter two numbers");
scanf("%d %d",&x,&y);
}
return 0;
}
int findPrime (int a, int b )
{
int sumPrime=0,c=0;
while(a<=b)
{
if(isPrime(a))
{
printf(
"%d ",a);c++;
sumPrime+=a;
a++; }
}
printf("\nPrime count = %d\n",c); return 0 ;}
int
isPrime(int n){
int i;for(i=2;i<n;i++) if(n%i==0) return 0;
return 1;
}
int
findSquare ( int a,int b){
int i,t,c=0,sumSquare = 0;for(i=2; i*i<=b;i++)
{
printf(
"%d ", i*i);c++;
sumSquare+=i*i;
}
printf(
"\nsumsquare is %d",sumSquare);printf(
"\nSquare count = %d\n",c); return sumSquare;}
----------------解决方案--------------------------------------------------------
int findPrime (int a, int b ) /* 这个函数死循环 */
{
int sumPrime = 0, c = 0;
while(a <= b)
{
if(isPrime(a))
{
printf("%d ",a);
c++;
sumPrime += a;
a++; /* a++ 因该放在 if 外面 */
}
/* a++; // 这里 */
}
printf("\nPrime count = %d\n",c);
return 0;
}
/* 就这个问题,其它没问题 (,那个函数看错了) */
[此贴子已经被作者于2007-11-6 1:56:52编辑过]
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
isPrime没问题,根据你这里写的这个函数是判断素数的,正确。
错的是findPrime函数,改正如下:
int findPrime (int a, int b )
{
int sumPrime=0,c=0;
printf("enter: ");
printf("%d %d\n",a,b);
while(a<=b)
{
if(isPrime(a))
{
printf("%d ",a);
c++;
sumPrime+=a;
a++;
}
else
a++; // 没有这个当a=4的时候就进入死循环了,因为4<30而你又不给a++,所以打出3后就没反应了
}
printf("\nPrime count = %d\n",c);
return 0 ;
}
----------------解决方案--------------------------------------------------------
寒,早了两分钟被人抢了
----------------解决方案--------------------------------------------------------
我一个函数看错了
----------------解决方案--------------------------------------------------------
谢谢各位
----------------解决方案--------------------------------------------------------