程序最后输出的时候不是素数,而是一些很随便的数
追答不好意思,以上的代码是我用手机编写的没有经过验证就发布了,很抱歉!
下面是我借别人电脑编写的代码,已经通过验证:
#include
//判断素数
int fun(int n)
{
int i,j;
if(n==1||n==2)
return n;
for(i=2;i<n;i++)
{
j=(int)(n/i);
if(n==i*j)
break;
if(n!=i*j)
if(i==(n-1))
return n;
}
return 0;
}
/*判断0和1*/
void SH(int n)
{
if(n!=0)
printf("%5d",n);
}
main()
{
int a[1000],i,j,n;
printf("How many numbers will you input:\n");
scanf("%d",&n);
printf("The %d's numbers are:\n\n",n);
for(j=0;j<n;j++)
{
scanf("%d",&a[j]);
}
if(n%2==0)
{
for(j=0;j<(n/2);j++)
printf("a[%d]=%d a[%d]=%d\n",j,a[j],j+(n/2),a[j+(n/2)]);
}
else
{
for(j=0;j<(n/2);j++)
printf("a[%d]=%d a[%d]=%d\n",j,a[j],j+(n/2),a[j+(n/2)]);
printf("a[%d]=%d\n\n",n-1,a[n-1]);
}
printf("其中素数有:\n\n\n");
for(i=0;i<n;i++)
{
j=i;
SH(fun(a[j]));
}
printf("\n");
}