C++ 需要我的平均计算器代码的建议吗
你好 我需要以下代码的帮助。我在计算平均数方面有问题。 代码的工作方式与计算第二个条目的平均值时所期望的一样 我突出显示了下图中未加起来的平均值。奇怪的是,平均数只在第二个条目上没有加起来C++ 需要我的平均计算器代码的建议吗,c++,C++,你好 我需要以下代码的帮助。我在计算平均数方面有问题。 代码的工作方式与计算第二个条目的平均值时所期望的一样 我突出显示了下图中未加起来的平均值。奇怪的是,平均数只在第二个条目上没有加起来 #include <iostream> using namespace std; float snelheid[][50] = {{}}; float lading[] = {}; float snelheidGem[] = {0}; int ladingNo = 1; int snelhei
#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;
}
#包括
使用名称空间std;
float snelheid[][50]={{};
浮动提货[]={};
float snelheidGem[]={0};
int ladinno=1;
int snelheidToets=1;
int main()
{
cout>ladinno;
对于(int i=0;i19)
{
cout在这一行:
float snelheidGem[] = {0};
您正在创建一个大小为1的数组,但随后正在索引元素,如snelheidGem[1]
和snelheidGem[2]
等,这些元素调用未定义的行为(UB)。UB意味着任何事情都可能发生,包括有时给出正确的平均值,但有时不给出正确的平均值
您可以给它一个足够大的尺寸:
float snelheidGem[50] = {0};
或者更好的方法是使用std::vector
,您可以通过执行push_back
向其添加元素
请注意,您在以下方面也有相同的问题:
float lading[] = {};
在这一行:
float snelheidGem[] = {0};
您正在创建一个大小为1的数组,但随后正在索引元素,如snelheidGem[1]
和snelheidGem[2]
等,这些元素调用未定义的行为(UB)。UB意味着任何事情都可能发生,包括有时给出正确的平均值,但有时不给出正确的平均值
您可以给它一个足够大的尺寸:
float snelheidGem[50] = {0};
或者更好的方法是使用std::vector
,您可以通过执行push_back
向其添加元素
请注意,您在以下方面也有相同的问题:
float lading[] = {};
欢迎!最好是注释你的代码或者至少使用变量名来使用英文名称,这样我们就可以理解你的代码。你不幸运的是你的代码甚至编译。普通C++数组是固定大小的。当你声明它们时,你必须指定一个常数大小,然后再改变大小。[] = {}
创建零元素或一元素数组,因此尝试使用它们会导致很多问题。创建函数。不要在函数main中执行所有操作。如果将程序拆分为类和函数,它将变得更加清晰。您好,非常感谢。我将按照您的建议,将程序拆分为类和函数。我将定义数组大小,看看是否有效。欢迎!最好对代码进行注释,或者至少对变量名使用英文名称,这样我们就可以理解您的代码。您是(un)幸运的是,你的代码甚至编译。普通C++数组是固定大小的。当你声明它们时,你必须指定一个常数大小,然后改变大小。创建零元素或一元素数组,因此尝试使用它们会导致很多问题。创建函数。不要在函数main中执行所有操作。如果将程序拆分为类和函数,它将变得更加清晰。您好,非常感谢。我将按照您的建议,将程序拆分为类和函数。我将定义数组大小,看看是否有效。没问题,很乐意帮忙:如果你的答案对你有用的话,考虑一下答案。没问题,很乐意帮忙。