C语言《绝对素数》0
当一个素数的各数位反序后仍为素数,这样的数
称为绝对素数。编程求出所有2位和3位的绝对素
数,每行打印15个(每个的格式为%4d,两个之间
不要再另加空格)。
要求编写函数:
⑴ int prime( int n );
若 n 为素数,则返回1,否则返回0。
⑵ int inv( int n);
返回n的反序数。
以下是我编的程序:程序不能运行,可能有多处错误,错误原因可能是:
非法的内存引用, 具体原因可能是:
1.数组越界使用;
2.指针的错误使用, 一般是对非用户区的地址空间进行读或者写操作;
3.越权操作文件指针, 程序中却未捕捉该类错误;
4.栈溢出, 一般是因为过多的递归调用或者过大的临时变量导致
恳请各位高手帮我纠错,谢谢大家
#include
int sca_n(int n,int a[])
{int i;
for(i=0;i
scanf("%d",a[i]);return n;}
void prt(int a[],int n)
{int i;
for(i=0;i
printf("%d",a[i]);
printf("\n");}
void sort(int a[], int n)
{int i,j,t;
for(i=0;i
for(j=i+1;j
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
}
void merger(int a[], int n, int b[], int m, int c[])
{int i,j,k;
for(i=0,j=0;k
if(a[i]
else c[k++]=b[i];
while(i
while(j
}
main()
{int a[15], b[15], c[30],n,m;
sca_n(n,a);sca_n(m,b);gets(b);
sort(a,n);sort(b,m);
merger(a,n,b,m,c);
prt(c,m+n);
}