#include <iostream>
using namespace std;
const int MAXACCOUNTS =8;
int count1 = 1;
bool True = true;
int main()
{
int AccountNumber[MAXACCOUNTS] = {1001, 7940, 4382, 2651, 3020, 7168, 6245, 9342};
double Balance[MAXACCOUNTS] = {4254.40, 27006.25, 123.50, 85326.92, 657.0, 7423.34, 4.99, 107864.44};
int DaysSinceDebited[MAXACCOUNTS] = {20, 35, 2, 14, 5, 360, 1, 45};
while (count1 != MAXACCOUNTS)
{
if (Balance[count1] > 10000 && DaysSinceDebited[count1] > 30)
{
cout << AccountNumber[count1] << " ";
cout << Balance[count1] << " ";
cout << Balance[count1] / 100 * 3 << endl;
}
else if (True = true)
{
cout << AccountNumber[count1] << " ";
cout << Balance[count1] << " ";
cout << Balance[count1] / 100 * 3 << endl;
}
count1 ++;
}
return 0;
}
嗨大家好
我刚刚开始使用c ++而且卡住了。我正在练习考试,其中一个要求是使用结构使这个程序做同样的事情。我确定它的简单可以有人帮忙解释一下吗?
答案 0 :(得分:-1)
由于这是一个家庭作业,我不会给你答案,而是试着帮助你了解如何自己完成这项功课。
您使用的是 相同 大小的三个数组。
正如您现在可能知道的那样,您可以创建一个结构来存储 多个 数据
这个问题似乎没有说明你不能使用数组,所以我猜你 可以 使用一个数据它;)
我希望这些线索能帮助你走上正轨。
答案 1 :(得分:-1)
在C ++中,数组和结构是aggregate types。您可以将它们视为&#34; box&#34;在哪里可以放置&#34;东西&#34;。进入阵列&#34;框&#34;你可以把同样的东西放在他们的索引中引用这些东西。进入struct&#34; box&#34;你可以放置多种东西,可能是不同种类的东西,你可以给它们命名,以便以后引用它们。
诀窍在于您可以嵌套&#34;盒子&#34;一个在另一个里面:例如,你可以把数组&#34; box&#34;进入struct&#34; box&#34;和结构&#34;盒&#34;进入阵列&#34;盒子&#34;。这项练习可能与筑巢的顺序有关。
这是一个小例子(伪C ++):
// Struct of Arrays (SoA)
// Put things into arrays, then put arrays into a struct
// (Like in your code, but arrays are wrapped into a struct)
struct Entries {
int AccountNumber[MAXACCOUNTS];
double Balance[MAXACCOUNTS];
int DaysSinceDebited[MAXACCOUNTS];
};
Entries entries;
// Read a "thing" from SoA
ith_account_number = entries.AccountNumber[i];
// Write a "thing" into SoA
entries.AccountNumber[i] = ith_account_number;
// Array of Structs (AoS)
// Put things into a struct, then put structs into an array
struct Entry {
int AccountNumber;
double Balance;
int DaysSinceDebited;
};
Entry entries[MAXACCOUNTS];
// Read a "thing" from AoS:
ith_account_number = entries[i].AccountNumber;
// Write a "thing" into AoS:
entries[i].AccountNumber = ith_account_number;
数据聚合模式的选择对数据的内存布局,性能特征和代码风格有着深远的影响。可以说,AoS看起来更像是面向对象&#34;方法(想想Java类),而SoA更像是&#34;基于数组的&#34;编程(想想FORTRAN或NumPy)。
我希望有这个小助手你可以轻松解决你的运动。实际上,唯一不同的是你如何访问条目(读写)。
答案 2 :(得分:-3)
使用AccountNumber,Balance和DaysSinceDebited创建一个struct
作为其成员变量。
您的stuct
应该类似于:
struct Account {
int AccountNumber;
double Balance;
int DaysSinceDebited;
}
然后使用所需的元素数创建一个Account of Array,然后通过传递必要的数据来初始化每个元素。
例如:
AccountDatabase Account[6];
AccountDatabase[1].AccountNumber = 1001;
AccountDatabase[1].Balance= 4254.40;
AccountDatabase[1].DaysSinceDebited = 20;
每个元素的等等。
对于从结构中提取数据的位置,请使用以下语法:
例如,读取存储在AccountDatabase的第一个元素中的帐号,
AccountDatabase[1].AccountNumber
因此,您的cout << AccountNumber[count1] << " ";
会变成
cout << AccountDatabase[count1].AccountNumber << " ";
并且您的余额是
cout << AccountDatabase[count1].Balance<< " ";