zoukankan      html  css  js  c++  java
  • C语言编程题目(三)

    题目:给数据文件IN.DAT中写入300个4位随机数。调用函数readDat()把这些随机数存入数组a中。编写函数jsValue(),其功能是求出千位数减去百位数减去个位数大于0的数的个数cnt,再求出所有满足条件的4位数的平均值pjz1,以及不满足条件的4位数的平均值pjz2.最后调用writeDat()把结果输出到OUT.DAT文件中。

    分析:

    (1)先产生300个大于1000小于9999的随机数,并应用fprintf()函数将其输出到文件IN.DAT中

    (2)编写函数readDat()读取文件IN.DAT,在读取的过程中需要用到库函数fscanf(),将读取的值存入全局变量中a[MAXLINE]中(也可以将是静态的局部变量 static a[]);

    (3)编写jsValue判断并找出满足条件的数。之前组声明数组为全局变量,因此不用给函数写参数;

    (4)编写函数writeDat()将相应的值写入OUT.DAT中。

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<time.h>
     4 #define MAXNUM 9999
     5 #define MINNUM 1000
     6 #define MAXLINE 300
     7 
     8 void getRand();
     9 void readDat();
    10 void jsValue();
    11 int Sum(int n,int a[]);
    12 void writeDat();
    13 
    14 double pjz1=0.0,pjz2=0.0;
    15 int a[MAXLINE],cnt = 0;
    16 
    17 main()
    18 {
    19 printf("Hellow FJK
    ");
    20 getRand();
    21 readDat();
    22 jsValue();
    23 writeDat();
    24 }
    25 void getRand()
    26 {
    27     int i;
    28     FILE *fp;
    29 
    30     fp=fopen("C:\Users\Administrator\Desktop\The C Programming Language\EX5\IN.DAT","w+");
    31     srand((unsigned int )time(NULL));
    32     for(i=0;i<MAXLINE;i++)
    33         fprintf(fp,"%d
    ",rand()%(MAXNUM-MINNUM+1)+MINNUM);
    34     fclose(fp);
    35 }
    36 
    37 void readDat()
    38 {
    39 int  i;
    40 FILE *fp;
    41 
    42 fp=fopen("C:\Users\Administrator\Desktop\The C Programming Language\EX5\IN.DAT","r");
    43 for(i=0;i<MAXLINE;i++)
    44     fscanf(fp,"%d",&a[i]);
    45 fclose(fp);
    46 }
    47 
    48 void jsValue()
    49 {
    50 int i;
    51 int ge_wei,shi_wei,bai_wei,qian_wei;
    52 int b[MAXLINE];
    53 
    54 for(i=0;i<MAXLINE;i++)
    55 {
    56 ge_wei=a[i]%10;
    57 shi_wei=a[i]%100/10;
    58 bai_wei=a[i]%1000/100;
    59 qian_wei=a[i]/1000;
    60 if((qian_wei-ge_wei-shi_wei-bai_wei)>0)
    61    {
    62        cnt++;
    63        b[i]=a[i];
    64     }
    65 }
    66 pjz1=Sum(cnt,b)/cnt;
    67 pjz2=(Sum(MAXLINE,a)-Sum(cnt,b))/(MAXLINE-cnt);
    68 }
    69 
    70 int Sum(int n,int a[])
    71 {
    72 int sum=0,i;
    73 for(i=0;i<n;i++)
    74 sum+=a[i];
    75 return sum;
    76 }
    77 
    78 void writeDat()
    79 {
    80 FILE *fp;
    81 
    82 fp=fopen("C:\Users\Administrator\Desktop\The C Programming Language\EX5\OUT.DAT","w+");
    83 fprintf(fp,"%d
    %f 
    %f 
    ",cnt,pjz1,pjz2);
    84 fclose(fp);
    85 }
  • 相关阅读:
    jstl表达式判断字符or字符串相等的写法
    enctype="multipart/form-data导致request获取不到数据
    Mac下解决mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    单源文件目录makefile
    默认生成的特殊函数
    为什么说switch比if快
    C++基本内置类型
    补码的原理及其应用
    CSS--浮动与定位
    CSS--字体
  • 原文地址:https://www.cnblogs.com/ShanShi012/p/5530026.html
Copyright © 2011-2022 走看看