已知数据文件IN58.DAT中存有300个4位数,并己调用读函数readDat()把这些数存入数组a中,请编制一函数isValue(),其功能是:求出这些4位数是素数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用函数writeDat()把数组b中的数输出到OUT58.DAT文件中。 例如:5591是素数,则该数满足条件,存入数组b中,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件,忽略。 注意:部分源程序已给出。 已定义数组:a[300],b[300],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: include<stdio.h> int a[300],b[300],cnt=0; int isP(int m) { int i; for(i=2;i<m;i++) if(m%i==0) return 0; return 1; } jsValue() { } main() { int i; readDat(); jsValue(); writeDat(); printf('cnt=%d/n',cnt); for(i=0;i<cnt;i++) printf('b[%d]=%d/n',i,b[i]); } readDat ( ) { FILE *fp; int i; fp= fopen ( 'IN58. DAT', 'r' ); for (i=0; i<300; i++) fscanf(fp,'%d,',&a[i]) fclose (fp); } writeDat ( ) { FILE *fp; int i; fp=fopen ( 'OUT58. DAT', 'w' ); fprintf(fp,'%d/n',cnt); for (i=0; i<cnt; i++) fprintf (fp, '%d/n', b[i] fclose(fp); }