gpt4 book ai didi

计算工作不正常

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:13 25 4
gpt4 key购买 nike

我正在从一本名为“C by Example”的书中学习 C

在每一章的末尾都有一个练习需要完成。从下面的代码可以看出,练习写在最上面

/* Chapter 7 Review Exercises #2
- You are a college professor and you have to get the average grades for 10 students. Write a program which prompts you for 10 different grades and then
displays their average */

#include <stdio.h>

int main()
{

float score1, score2, score3, score4, score5, score6, score7, score8, score9, score10;

float average = score1+score2+score3+score4+score5+score6+score7+score8+score9+score10/10;

printf("Please input the scores of the students: \n");
scanf(" %f",&score1);
scanf(" %f",&score2);
scanf(" %f",&score3);
scanf(" %f",&score4);
scanf(" %f",&score5);
scanf(" %f",&score6);
scanf(" %f",&score7);
scanf(" %f",&score8);
scanf(" %f",&score9);
scanf(" %f",&score10);

printf("The average score is: %.2f" , average);

return 0;

}

这里的问题是每次我输入数字(运行代码时)它总是给我一个巨大的数字(比如至少 20 个数字)

有没有办法限制数量,还是我做错了什么?

最佳答案

你在这里遗漏了一些括号:

float average = score1+score2+score3+score4+score5+score6+score7+score8+score9+score10/10;

将此更改为:

float average = (score1+score2+score3+score4+score5+score6+score7+score8+score9+score10)/10;

您还需要将此行向下移动,使其出现在输入阶段之后(即在对 scanf 的所有调用之后),因为尝试没有意义并在您拥有所有输入值之前计算一些东西。


您可能想阅读运算符优先级和循环,因为您的程序可以写得更简单和简洁:

#include <stdio.h>

int main()
{
const int n = 10;
float sum = 0.0f;
float average;
int i;

printf("Please input the scores of the students: \n");

for (i = 0; i < n; ++i)
{
float score;

scanf(" %f", &score);
sum += score;
}

average = sum / n;

printf("The average score is: %.2f" , average);

return 0;
}

关于计算工作不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38788503/

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