用c计算用户输入的平均值

时间:2017-09-30 14:04:58

标签: c average

免责声明:我是编程新手 我正在研究这个问题

enter image description here

到目前为止,我写了这个用户输入并根据它们计算平均值

SET search_path = schema1, public;

INSERT INTO "Sities" (name, country, weather_id_api)
            SELECT 'Orenburg', 'RU', 234234
            WHERE NOT EXISTS (SELECT name FROM "Sities" WHERE name='Orenburg');

我希望用户输入-1表示他们已完成输入数据;我无法弄清楚如何做到这一点。所以,如果可能,有人可以解释或给我一个关于如何做的想法

谢谢!

3 个答案:

答案 0 :(得分:0)

你只需要平均值。无需存储所有输入的数字。

你只需要在-1存储在变量之前输入数字,比如count,它在循环的每次迭代时递增,而变量如sum则保持为n的总和。到目前为止输入的所有数字。

在您的程序中,在使用之前尚未初始化naverage只有垃圾,其价值不确定。

您甚至不需要sum/count变量。您可以在打印平均值时打印int count=0; float num, sum = 0; while(scanf("%f", &num)==1 && num!=-1) { count++; sum += num; }

待办事项

-1

停止阅读CASE WHEN

答案 1 :(得分:0)

#include <stdio.h>

int main()
{
    int i = 0;
    float num[100], sum = 0.0, average;
    float x = 0.0;

    while(1) {

        printf("%d. Enter number: ", i+1); 
        scanf("%f", &x);

        if(x == -1)
            break;

        num[i] = x;
        sum += num[i];
        i++;

    }

    average = sum / i;

    printf("\n Average = %.2f", average);

    return 0;
}

如果您不希望以后使用数据,则无需数组num []。 希望这会有所帮助。!!

答案 2 :(得分:0)

无需声明数组来存储输入的数字。您只需检查下一个输入的数字是否等于-1,如果不是,则将其添加到总和中。

注意根据分配,用户必须输入整数。平均值可以计算为整数或浮点数。

程序可以按以下方式查看

#include <stdio.h>

int main( void )
{
    unsigned int n = 0;
    unsigned long long int sum = 0;

    printf("Enter a sequence of positive numbers (-1 - exit): ");

    for (unsigned int num; scanf("%u", &num) == 1 && num != -1; )
    {
        ++n;
        sum += num;
    }

    if (n)
    {
        printf("\nAverage = %llu\n", sum / n);
    }
    else
    {
        puts("You did not eneter a number. Try next time.");
    }

    return 0;
}

程序输出可能看起来像

Enter a sequence of positive numbers (-1 - exit): 1 2 3 4 5 6 7 8 9 10 -1

Average = 5

如果您需要将平均值计算为浮点数,则只需将变量sum声明为具有类型double,并使用printf语句中相应的格式说明符输出平均。