gpt4 book ai didi

c - 任意数量数字的平均值

转载 作者:行者123 更新时间:2023-11-30 16:12:15 24 4
gpt4 key购买 nike

我目前正在尝试为类作业创建一个 C 程序,该程序取任意数量的测试分数的平均值。但是,我遇到了一些问题。

我的教授提供了一个大纲来帮助入门。我也只能在指示的地方添加代码,因此没有额外的变量等。

这是我到目前为止所拥有的:

#include <stdio.h>

void calculateAverage()
{
int grade, count, sum;
double average;

/* add code to input grades, calculate average, and print it */
/* --> between here */

printf("Enter the amount of test scores.\n");
scanf("%d", &count);

grade = 0;
sum = 0;

while (grade != -1 && grade <= 100 && grade >= 0)
{
printf("Enter the grade. Enter -1 when you are done entering grades.\n");
scanf("%d", &grade);

if (grade != -1 && grade <= 100 && grade >= 0)
{
sum = sum + grade;
}

else
{
average = (sum / count);

printf("average is %.2lf \n", &average);
}

}
/* --> and here */
}

int main(void)
{
while (1)
calculateAverage();
return 0;
}

所以我遇到的问题是,到目前为止,平均值将始终被计算为 0。到底为什么会发生这种情况,我该如何解决它,以便它给我正确的平均值?

更新因此,我尝试将平均值转换为双倍,这样我就可以避免类型不匹配,这确实消除了编译器警告,但所有输入值的平均值仍然为 0。

#include <stdio.h>

void calculateAverage()
{
int grade, count, sum;
double average;

/* add code to input grades, calculate average, and print it */
/* --> between here */

printf("Enter the amount of test scores.\n");
scanf("%d", &count);

grade = 0;
sum = 0;

while (grade != -1 && grade <= 100 && grade >= 0)
{
printf("Enter the grade. Enter -1 when you are done entering grades.\n");
scanf("%d", &grade);

if (grade != -1 && grade <= 100 && grade >= 0)
{
sum = sum + grade;
}

else
{

average = (double)(sum / count);

printf("average is %.2f \n", &average);
}

}
/* --> and here */
}

int main(void)
{
while (1)
calculateAverage();

return 0;
}

最佳答案

#include <stdio.h>

void calculateAverage()
{
int grade, count, sum;
double average;

/* add code to input grades, calculate average, and print it */
/* --> between here */

printf("Enter the amount of test scores.\n");
scanf("%d", &count);

grade = 0;
sum = 0;

while (grade != -1 && grade <= 100 && grade >= 0)
{
printf("Enter the grade. Enter -1 when you are done entering grades.\n");
scanf("%d", &grade);

if (grade != -1 && grade <= 100 && grade >= 0)
{
sum = sum + grade;
}

else
{

average = (double)(sum / count);

printf("average is %.2lf \n", average); # <---- Please fix this!
}

}
/* --> and here */
}

int main(void)
{
while (1)
calculateAverage();

return 0;
}

您的代码中存在一些问题:

  1. 其中之一是您正在使用 & 运算符打印平均值的地址。
  2. 您可以更改的另一件事是在打印 double 时使用正确的格式说明符

关于c - 任意数量数字的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58369323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com