c++ - 需要关于我的平均计算器代码的建议
问题描述
再会,
我需要以下代码的帮助。我在计算平均值时遇到问题。该代码按预期工作,用于计算第二个条目的平均值。
我突出显示了下图中未加起来的平均值。奇怪的是平均值只没有加到第二个条目上?
#include <iostream>
using namespace std;
float snelheid[][50] = {{}};
float lading[] = {};
float snelheidGem[] = {0};
int ladingNo = 1;
int snelheidToets = 1;
int main()
{
cout << "Hoeveel ladings word getoets?: ";
cin >> ladingNo;
for (int i = 0; i < ladingNo; i++)
{
int n = i + 1;
if (n == 1 || n == 8 || n > 19)
{
cout <<"Wat was die " << n << "st lading?: ";
cin >> lading[i];
cout <<"Hoeveel skote was geskiet vir die "<< n << "st lading?: ";
cin >> snelheidToets;
snelheidGem[i] = {0};
for (int t = 0; t < snelheidToets; t++)
{
int m = t + 1;
if (m == 1 || m == 8 || m > 19)
{
cout <<"Wat was die spoed van die " << m << "st skoot?: ";
cin >> snelheid[i][t];
}
else
{
cout <<"Wat was die spoed van die " << m << "de skoot?: ";
cin >> snelheid[i][t];
}
snelheidGem[i]=snelheidGem[i]+snelheid[i][t];
}
snelheidGem[i] = snelheidGem[i]/snelheidToets;
cout << snelheidGem [i] << endl;
cout << endl;
}
else
{
cout <<"Wat is die " << n << "de lading?: ";
cin >> lading[i];
cout <<"Hoeveel skote was geskiet vir die "<< n << "de lading?: ";
cin >> snelheidToets;
snelheidGem[i] = {0};
for (int t = 0; t < snelheidToets; t++)
{
snelheid[i][t] = {0};
int m = t + 1;
if (m == 1 || m == 8 || m > 19)
{
cout <<"Wat was die spoed van die " << m << "st skoot?: ";
cin >> snelheid[i][t];
}
else
{
cout <<"Wat was die spoed van die " << m << "de skoot?: ";
cin >> snelheid[i][t];
}
snelheidGem[i]=snelheidGem[i]+snelheid[i][t];
cout << snelheid[i][t] << " snelheid" << endl;
cout << snelheidGem[i] << " gemiddeld" << endl;
}
snelheidGem[i] = snelheidGem[i]/snelheidToets;
cout << snelheidGem [i] << endl;
cout << endl;
}
}
return 0;
}
解决方案
在这条线上:
float snelheidGem[] = {0};
您正在创建一个大小为 1 的数组,但随后将索引元素,例如snelheidGem[1]
、 和snelheidGem[2]
等,这会调用未定义的行为 (UB)。UB 意味着任何事情都可能发生,包括有时给出正确的平均值,但有时不给出。
你可以给它足够大的尺寸:
float snelheidGem[50] = {0};
或者更好的是,使用 a std::vector
,您可以通过执行向其中添加元素push_back
。
请注意,您有同样的问题:
float lading[] = {};
推荐阅读
- javascript - 如何将用户输入输入到数组中,然后使用 math.random 从数组中获取具有随机值的随机问题?
- node.js - 直接连接到副本集中的 mongo 隐藏实例
- javascript - 跳过视频时出现 Video.js 错误。进度条在结束前停止
- session - 像 flaticon 这样的 wabsites 如何跟踪用户的活动
- swiftui - SwiftUI如何制作圆角和屏幕底部上方的hstack?
- javascript - 在 Web 上配置 React Navigation:基于平台隐藏底部标签栏
- c# - 自定义 IRouteConstraint:返回自定义响应而不是 404[NotFound]
- asp.net-core - 使用 ASP.NET Core 身份模型测试密码
- javascript - 如何在 JS 中获取 CosmosDB 中的帐户名
- javascript - 未捕获的 SyntaxError:预期的表达式,得到 ','