zoukankan      html  css  js  c++  java
  • C语言:统计整型变量m中各数字出现的次数,-去掉一个最高分和一个最低分,然后求平均值,(注意最低分和最高分可能有多个数并列)

    //统计整型变量m中各数字出现的次数,并存放在数组a中,其中,a[0]存放0出现的次数,a[1]存放1出现的次数。

     1 #include  <stdio.h>
     2 void fun( int  m, int  a[10])
     3 {  int  i;
     4   for (i=0; i<10; i++)
     5 /**********found**********/
     6     a[i] = 0;
    7 while (m > 0) 8 { 9 /**********found**********/ 10 i = m%10; 11 a[i]++; 12 /**********found**********/ 13 m = m/10; 14 } 15 } 16 void main() 17 { int m, a[10],i; 18 printf("请输入一个整数 : "); scanf("%d", &m); 19 fun(m, a); 20 for (i=0; i<10; i++) printf("%d,",a[i]); printf(" "); 21 }
    
    
     
     

     //将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回,函数形参a所指存放得分的数组,形参n存放得分个数。

     1 #include  <stdio.h>
     2 void NONO();
     3 double fun(double  a[ ] , int  n)
     4 {
     5     double sum = 0;
     6     double min, max;
     7     min = max = a[0];
     8     int c=0,b=0;
     9     for (int i = 1; i < n; i++)
    10     {
    11         if (a[i] > max) max = a[i];
    12         if (a[i] < min) min = a[i];
    13     }
    14     for (int j = 0; j < n; j++)
    15     {
    16         if (a[j] == max && c == 0) { c++; continue; }//切记这里,需要设置标志位,因为最大数和最小数有可能有多个并列。
    17         if (a[j] == min && b == 0) { b++; continue; }
    18         sum += a[j] / (n - 2);
    19     }
    20     return sum;
    21 
    22 
    23 }
    24 
    25 void main()
    26 {  double  b[10],  r;    int  i;
    27     printf("输入10个分数放入b数组中 :  ");
    28     for (i=0; i<10; i++)   scanf("%lf",&b[i]);
    29     printf("输入的10个分数是 :  ");
    30     for (i=0; i<10; i++)   printf("%4.1lf ",b[i]);    printf("
    ");
    31     r = fun(b, 10);
    32     printf("去掉最高分和最低分后的平均分 :  %f
    ", r );
    33     NONO();
    34 }
    35 
    36 void NONO()
    37 {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
    38   FILE *fp, *wf ;
    39   int i, j ;
    40   double b[10], r ;
    41 
    42   fp = fopen("in.dat","r") ;
    43   wf = fopen("out.dat","w") ;
    44   for(i = 0 ; i < 10 ; i++) {
    45     for(j = 0 ; j < 10 ; j++) {
    46       fscanf(fp, "%lf ", &b[j]) ;
    47     }
    48     r = fun(b, 10) ;
    49     fprintf(wf, "%f
    ", r) ;
    50   }
    51   fclose(fp) ;
    52   fclose(wf) ;
    53 }

    //错误解答:

     1     double sum = 0;
     2     double min, max;
     3     min = max = a[0];
     4     for (int i = 1; i < n; i++)
     5     {
     6         if (a[i] > max) max = a[i];
     7         if (a[i] < min) min = a[i];
     8     }
     9     for (int j = 0; j < n; j++)
    10     {
    11         if (a[j] == max || a[j] == min) continue;//如果最大数最小数有多个时,会出现不准确现象。
    12         sum += a[j] / (n - 2);
    13     }
    14     return sum;

    //另一种解答:

     1     double sum = 0;
     2     double min, max;
     3     min = max = a[0];
     4     for (int j = 0; j < n; j++)
     5     {
     6         if (a[j] > max) max = a[j];
     7         if (a[j] < min) min = a[j];
     8         sum += a[j];
     9     }
    10     sum = sum - max - min;
    11     return sum/(n-2);
  • 相关阅读:
    vue引用js报错Uncaught SyntaxError: Unexpected token <
    VS Code离线安装扩展方法
    zTree、jsTree排序和简单的js数字字符串混合排序方法
    C# 如何读取匿名类型Anonymous Type的属性
    ajax使用jsonp请求方式
    VS2015 Bad Request解决方法
    C# json对象中包含数组对象时,如何存入数据库
    js 最短代码生成随机数(字符串、id)
    HDU 6395 Sequence 杜教板子题
    hdu GuGuFishtion 6390 数论 欧拉函数
  • 原文地址:https://www.cnblogs.com/ming-4/p/10523591.html
Copyright © 2011-2022 走看看