【问题标题】:Writing a function for calculating min,max,sum, and average in C用C编写一个计算最小值、最大值、总和和平均值的函数
【发布时间】:2013-10-12 00:32:47
【问题描述】:

我需要编写一个名为 void stat() 的函数,用户可以在其中根据需要输入我的双打,然后在完成后输入一个字符。该函数应该计算并输出最大值、最小值、总和和平均值。除了分钟,我什么都做了。有人可以帮我吗。谢谢!!!

void stat(){
    double x=0;
    double min=0, max=0, sum=0, average=0,i=0;
    int beenHere = 0;
    printf("enter numbers for stat()\n");

    while (scanf_s ("%lf", &x ) ==1 ){
        if (!beenHere || max < x)
            max = x;
        sum += x;
        i++;
        average = sum/ i;
        beenHere = 1;
    }//while

    printf("minimum: %f\n", max);
    printf("maximum: %f\n", max);
    printf("sum: %f\n", sum);
    printf("average: %f\n", average);
}//stat`

【问题讨论】:

  • 您在这里缺少什么?与最大值检查相同,只需检查较小的值即可。
  • 你坚持哪一部分?如果你有最大值,最小值应该很容易。
  • 如果做了'max'部分的作业,那么min有什么问题?
  • 算出来了 printf("minimum: %f\n", max);应该是 printf("minimum: %f\n", min);
  • 您的代码与 min 无关

标签: c algorithm math max min


【解决方案1】:

ma​​x 的伪代码:

double max = 0.0;
foreach element:
    if element > max:
        max = element;  // consider it new max

min的区别在于你需要从大的价值开始:

double min = MAX;
foreach element:
    if element < min:
        min = element;  // consider it new min

其中MAX 是一个大于任何元素可能值的常数。
一个可能的MAX 可能是来自&lt;float.h&gt;DBL_MAX,其值约为1 x 1037

【讨论】:

    猜你喜欢
    • 2014-11-20
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多