问答题
                                     已知数据文件IN56.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数 (新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数均为素数且新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT56.DAT文件中。
  注意:部分源程序已给出。
  程序中已定义数组:a[200],b[200],已定义变量:cnt。
  请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
  试题程序:
    #include
    #define MAX 200
    int a[MAX],b[MAX],cnt=0;
  
    int isprime(int m)
    
      int i;
      for(i=2;i<=m/2;i++)
         if(m%i==0) return 0;
      return 1;
    
    void isval()
    
  
    
    
    void readDat( )
    
      int i;
      FILE *fp;
      fp=fopen("IN56.DAT","r");
      for(i=0;i<MAX;i++)
        fscanf(fp,"%d",&a[i]);
      fclose(fp);
    
    
    main()
        
       int i;
       readDat();
       jsVal();
       printf("满足条件的数=%d\n",cnt);
       for(i=0;i<cnt;i++) 
        printf("%d\n",b[i]);
       printf("\n");
       writeDat();
    
     writeDat()
    
      FILE *fp;
      int i;
      fp=fopen("OUT56.DAT","w");
      fprintf(fp,"%d\n",cnt);
      for(i=0;i<cnt;i++)
        fprintf(fp, "%d\n",b[i]);
      fclose(fp);
                                
                                            【参考答案】
                                            
                                            
void jsVal()
  {  
    int i,thou,hun,ten,data,j;
 ......
(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)