c - 使用while循环计算每天步行的平均英里数
问题描述
我无法获得要添加的输入并获得平均值的正确输出。
下面的代码是我所做的。任何帮助将不胜感激!
#include <stdio.h>
int main() {
/* variable definition: */
int days;
float avg, miles;
/* Initialize */
days=1;
// Loop through to input values
while(days<=7) {
printf("Enter the number of miles for each day walked.");
// use %lf for double, %f for float
scanf("%f", &miles);
days++;
}
avg = miles / days;
printf("average is %f\n " , avg );
return 0;
} // end main
解决方案
正如 John3136 所说,您没有跟踪步行的总里程。您以英里为单位进行扫描,但您不跟踪英里的总和。您的平均值就是您最后输入的英里数除以 7。
这是一个建议的解决方案:
int main(void)
{
// variable definition
int days = 0;
float avg = 0, miles = 0;
// Loop through to input values
while(days < 7)
{
printf("Enter the number of miles for each day walked: ");
scanf("%f", &miles);
avg += miles;
days++;
}
avg /= days;
printf("average is %.2f\n " , avg);
return 0;
}
在 Jonathan Leffler 的帮助下,这里是之前代码的增强版本:
#include <stdio.h>
int main(void)
{
// variable definition
int days = 0;
double miles = 0.0, total_miles = 0.0;
// Loop through to input values
while(days < 7)
{
printf("Enter the number of miles for day %d: ", days + 1);
if(!scanf("%lf", &miles))
return -1;
total_miles += miles;
days++;
}
printf("Total miles: %.2lf / %d Days = %.2lf Average miles per day.\n",
total_miles, days, (days > 0) ? total_miles / days : 0.0);
return 0;
}
推荐阅读
- python - 如何在嵌套函数中使用函数的参数?
- python - Understand Zip and list comprehension in python
- ruby-on-rails - 选择连接列 Ruby on Rails
- mysql - 移除子级时移除父级
- sql - Postgres 如何将 json 数组解压缩成列然后重新打包,但保留数据类型?
- python - 在python中导入但未使用
- swift - 比较两个 UIColor DynamicProvider (iOS13) 返回 False
- node.js - nodemon 应用程序崩溃 - 在启动之前等待文件更改... nodejs
- azure - 将数据从 Azure Linux VM 上传到 Azure Blob 的方法
- excel - 如何提取第一个 Google 搜索结果 URL?