我编的这个c源程序为什么通不过?

来源:百度知道 编辑:UC知道 时间:2024/06/09 09:30:17
编写一个计算小于整数n的最大素数的函数,从键盘输入n值,在main()函数中调用函数从而输出素数。
#include<stdio.h>
#include<math.h>
int max_prime_number(int n)
{
int i,d,j;
for(i=n-1;i>=2;i--)
{ d=sqrt(i);
for(j=2;j<=d;j++)
if(i%j==0)break;
if(j>d) return(i);break;}
return(i);
}
void main()
{
int max,a;
printf("please input data:\n");
scanf("%d",&a);
max=max_prime_number(a);
printf("the max prime number is:",max);
}

我用的编译系统是turbo c++ 3.0,输出的是“the max prime number is:”,却没有了后文,系统提示说无返回值,如何修改?

printf("the max prime number is: %d ",max); //漏了%d

而且你的算法好像不对

我帮你修改了

#include<stdio.h>
#include<math.h>
int max_prime_number(int n)
{
int i,d,j;
for(i=n-1;i>=2;i--)
{
d=i/2+1;
for(j=2;j<=d;j++)
{
if(i%j==0)continue;
if(j>=d) return(i);
}
}
return(i);
}
void main()
{
int max,a;
printf("please input data:\n");
scanf("%d",&a);
max=max_prime_number(a);
printf("the max prime number is: %d \n",max);
}

我的是在VC下修改,你在TC中可能有些需要改动

......
d=sqrt(i);
......