41、编写函数void fun (int a[], int b[],int *n),其功能是:找出数组a保存的100个四位数中的全部素数,将这些素数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,并通过形参n返回这些素数的个数。
#include <stdio.h> #include <stdlib.h> void fun (int a[], int b[],int *n) { } int main() { int aa[100],bb[100], n, i ; for(i=0;i<100;i++) aa[i]=rand()%9000+1000; printf("The original Array is : \n"); for ( i = 0 ; i < 100 ; i++ ) { printf("%6d", aa[i]) ; if ((i + 1) % 10 == 0) printf("\n") ; } fun (aa,bb, &n) ; printf("The Result Array is : \n"); for ( i = 0 ; i < n ; i++ ) { printf("%6d", bb[i]) ; if ((i + 1) % 10 == 0) printf("\n") ; } return 0; }
void fun (int a[], int b[],int *n) { int i,j,cnt=0,t; for (i=0;i<100;i++) { if (a[i]%2==0) continue; for (j=3;j<a[i];j+=2) if (a[i]%j==0) break; if (j>=a[i]) b[cnt++]=a[i]; } for (i=0;i<cnt-1;i++) for(j=i+1;j<cnt;j++) if(b[i]>b[j]) { t=b[i]; b[i]=b[j]; b[j]=t;} *n=cnt; }
参考程序
42、编写函数void fun (int a[], int b[],int *n),其功能是:在数组a保存的100个四位数中,如果一个四位数各位上的数字均是奇数,则将该数存入数组b中,然后对所有存入数组b的满足要求的四位数按从小到大的顺序进行排序,通过形参n返回这些数的个数。
#include <stdio.h> #include <stdlib.h> void fun (int a[], int b[],int *n) { } int main() { int aa[100],bb[100], n, i ; for(i=0;i<100;i++) aa[i]=rand()%9000+1000; printf("The original Array is : \n"); for ( i = 0 ; i < 100 ; i++ ) { printf("%6d", aa[i]) ; if ((i + 1) % 10 == 0) printf("\n") ; } fun (aa,bb, &n) ; printf("The Result Array is : \n"); for ( i = 0 ; i < n ; i++ ) { printf("%6d", bb[i]) ; if ((i + 1) % 10 == 0) printf("\n") ; } return 0; }
void fun (int a[], int b[],int *n) { int i,j,cnt=0,t; for (i=0;i<100;i++) { int qw,bw,sw,gw; qw=a[i]/1000; bw=a[i]%1000/100; sw=a[i]%100/10; gw=a[i]%10; if (qw%2 && bw%2 && sw%2 &&gw%2) b[cnt++]=a[i]; } for (i=0;i<cnt-1;i++) for(j=i+1;j<cnt;j++) if(b[i]>b[j]) { t=b[i]; b[i]=b[j]; b[j]=t;} *n=cnt; }
参考程序
43、编写函数void fun (int a[], int *n),其功能是:找出所有满足下列条件的四位自然数,并将这些四位自然数按从小到大的顺序存入数组a中,并通过形参n返回这些数的个数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。
#include <stdio.h> #include <stdlib.h> void fun (int a[], int *n) { } int main() { int aa[9000],n, i ; fun (aa,&n) ; printf("The Result Array is : \n"); for ( i = 0 ; i < n ; i++ ) { printf("%6d", aa[i]) ; if ((i + 1) % 10 == 0) printf("\n") ; } return 0; }
void fun (int a[], int *n) { int i,cnt=0,qw,bw,sw,gw; for (i=1000;i<10000;i++) { qw=i/1000; bw=i%1000/100; sw=i%100/10; gw=i%10; if (qw+bw==sw+gw && qw+bw==(gw-qw)*10) a[cnt++]=i; } *n=cnt; }
参考程序