一道棘手的问题,求大神帮助,如题:
随机产生20个互不相同的二位正整数,将其中的素数按从大到小的顺序排列输出。函数int isprime(int a[],int n)的功能是:找出其中的素数并计算出其中的个数,函数int sort(int a[],int n)的功能是:将其中的素数进行排序。已经给出一些代码:
程序代码:
#include<stdio.h> #include<math.h> #include<time.h> #include<stdlib.h> int isprime(int a[],int n); void sort(int a[],int n); void main() { int i,j,k,a[20]; srand((unsigned)time(NULL)); for(i=0;i<20;i++) { a[i]=rand()%90+10; for(j=0;j<i;j++) { if(a[i]==a[j]) i--; } } for(i=0;i<20;i++) { printf("%3d",a[i]); } printf("\n"); k=isprime(a,20); sort(a,k); for(i=0;i<k;i++) { printf("%3d",a[i]); } printf("\n"); } void sort(int a[],int n) { } int isprime(int a[],int n) { int k,t,i,p; for(i=0;i<n;i++) { p=a[i]; } printf("%3d",n); for(t=2;t<n;t++) { if(n%t==0)break; else k=k+1; a[k]=a[i]; printf("%3d",a[k]); } }