zoukankan      html  css  js  c++  java
  • C语言每日一练——第4题

    一、题目要求

    已知数据文件in.dat中有300个四位数,并调用readDat()函数把这些数存储数组a中,编写函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的按从小到大顺序排列,最后编写函数wirteDat()把数组b中的数输出到out.dat文件中。

    二、in.dat文件内容

    7704,9774,3213,5845,7703,2902,1925,2584,7429,6646
    3793,8640,4364,3032,9190,2498,6394,3796,2434,6791
    5552,9052,9159,8245,7965,1071,8157,6526,2164,6767
    4853,1174,4564,5427,7279,9832,3640,7897,3211,4788
    6556,4781,2168,6014,7795,6536,9461,4287,8029,8303
    2609,8795,8386,3911,8130,7268,1906,7345,3678,5823
    8074,6963,7874,6066,4509,8976,1740,2026,7047,4730
    9538,2193,8473,6729,4207,5095,4623,4933,6226,8098
    1277,5480,1906,4109,9047,1986,5882,8444,1029,6515
    2612,7297,6934,8495,7731,1625,1305,7953,7385,3620
    7206,4549,5736,3131,6875,6917,6087,4640,5314,8646
    6077,5677,7345,4143,1513,8101,2038,9879,3946,6643
    7763,6108,4788,9055,8186,5416,5699,6733,5416,2320
    2430,4772,9962,9676,1319,7767,7369,1411,3663,2876
    2245,4810,5400,6045,1504,4178,7264,2763,7050,1490
    8790,4014,9280,7105,7113,3600,8221,8203,6127,7313
    1850,5983,9689,4102,1036,6375,5064,7188,9887,9800
    6871,4856,2432,9562,3426,9013,5104,4724,4785,9953
    5939,6668,8700,4730,9737,4055,6544,9763,1034,2855
    8078,5111,4817,4593,9876,1189,2507,1197,1782,4347
    7961,8612,9699,6108,4221,2489,8895,3672,8226,8724
    6302,7624,7506,8568,4013,2785,3528,6712,1155,3150
    1388,5803,6328,6841,5825,7802,2022,6290,1775,3652
    9699,6573,8082,9016,4369,4002,3205,2688,8414,7572
    2830,1231,3888,5137,5555,8976,2543,6542,8986,5921
    5346,1368,2566,3304,4089,3880,1244,6650,6523,6123
    1243,7488,5262,9992,3115,9270,6989,1595,1283,2645
    4075,9471,7983,9093,7642,8847,5686,4168,8550,8941
    5188,2290,3219,2853,6978,9053,5843,7153,6382,6289
    3022,5591,9981,7296,2421,7328,9575,7586,1190,8504
    View Code

    三、程序代码

    #include <stdio.h>  
    int a[300], b[300], cnt=0;  
    
    void readDat()
    {
      FILE *fp;  
      int i;  
      fp = fopen("in.dat","r");  
      for(i = 0; i < 300; i++)
      {
          fscanf(fp, "%d,", &a[i]);
      }
      fclose(fp);  
    }
    
    void writeDat()
    {
      FILE *fp;  
      int i;   
      fp = fopen("out.dat","w");  
      fprintf(fp, "%d
    ", cnt);  
      for(i = 0; i < cnt; i++)
      { 
          fprintf(fp, "%d
    ", b[i]);
      }
      fclose(fp);  
    }
    
    
    
     
    int isP(int m)  
    {
      int i;  
      for(i = 2; i < m; i++)  
      if(m % i == 0)
        return 0;  
      return 1;  
    }
    void jsValue()
    {
        int i,j;
        int temp; 
        for(i=0;i<300;i++)
        {
            if(isP(a[i]))
            {
                b[cnt++]=a[i];
            }
        }
        
        //方法一:冒泡排序 
        for(i=0;i<cnt;i++)
        {
            for(j=0;j<cnt-i-1;j++)
            {    
                if(b[j]>b[j+1])
                {
                    temp=b[j];
                    b[j]=b[j+1];
                    b[j+1]=temp;
                }
            }
        }
        //方法二:
        /*for(i = 0; i < cnt; i++)   
        {
            for(j = i + 1; j < cnt; j++)   
            {
                if(b[i] > b[j])   
                {
                    temp = b[j];  
                    b[j] = b[i];  
                    b[i] = temp;  
                }
            }
        }*/
    }
    void main()
    {
      int i;  
      readDat();  
      jsValue();  
      writeDat();  
      printf("cnt=%d
    ", cnt);  
      for(i = 0; i < cnt; i++)
      {
          printf("b[%d]=%d
    ", i, b[i]);
      }
    }
    View Code

    四、程序运行结果

  • 相关阅读:
    博客园博客备份
    前后端对字段去除首尾空白
    StringEscapeUtils类的转义与反转义方法
    validatebox自定义验证规则以及使用
    mybatis动态sql中的trim标签的使用
    异步IO
    tomcat_下载
    JDK__下载地址
    Eclipse_下载地址
    Linux守护进程
  • 原文地址:https://www.cnblogs.com/wutao666/p/9615110.html
Copyright © 2011-2022 走看看