C++ 如何避免使用数组?
我的教授希望我们在不使用数组或向量的情况下编写一个程序,如下所示:C++ 如何避免使用数组?,c++,C++,我的教授希望我们在不使用数组或向量的情况下编写一个程序,如下所示: car------Hours------Charge 1--------2.00--------$5.00 2--------5.00--------$5.00 3--------5.30--------$5.50 etc. total: 3---12.30----$15.50 使用函数编写一个程序,计算并打印将汽车停放在车库中的n位客户的停车费 停车收费: 停车场停车五小时的最低收费为5美元 停车场每超过五小时
car------Hours------Charge
1--------2.00--------$5.00
2--------5.00--------$5.00
3--------5.30--------$5.50
etc.
total: 3---12.30----$15.50
使用函数编写一个程序,计算并打印将汽车停放在车库中的n位客户的停车费
停车收费:
- 停车场停车五小时的最低收费为5美元
- 停车场每超过五小时,每小时或不足一小时,每小时额外收费0.50美元
- 任何24小时内的最高费用为10.00美元。假设停车场不再是一次24小时的停车场
car------Hours------Charge
1--------2.00--------$5.00
2--------5.00--------$5.00
3--------5.30--------$5.50
etc.
total: 3---12.30----$15.50
我只做到了这一点:
include <iostream>
include <conio.h>
include <cmath>
include <iomanip>
using namespace std;
double calculate(double);
int main()
{
double hours,charge;
int finish;
double sumhours;
sumhours=0;
finish=0;
charge=0;
int cars;
cars=0;
do
{
cout<<"Enter the number of hours the vehicle has been parked: "<<endl;
cin>>hours;
cars++;
sumhours+=hours;
finish=cin.get();
if(hours>24)
{
cout<<"enter a time below 24hrs."<<endl;
cars--;
sumhours=sumhours-hours;
}
}
while(finish!=EOF);
double total=calculate(hours);
cout<<total<<": "<<(cars-1)<<": "<<sumhours;
while(!_kbhit());
return 0;
}
double calculate(double time)
{
double calculate=0;
double fees;
if(time<=5)
return 5;
if(time>15)
return 10;
time=ceil(time);
fees=5+(.5*(time-5));
return calculate;
}
包括
包括
包括
包括
使用名称空间std;
双重计算(双重);
int main()
{
双倍小时,收费;
整饰;
两小时;
sumhours=0;
完成=0;
电荷=0;
int轿车;
cars=0;
做
{
cout您可以尝试将值存储在链表结构而不是数组中。链表非常适合动态存储。
尝试本教程,您可以尝试将值存储在链表结构而不是数组中。链表非常适合动态存储。
试试这个教程,因为这是家庭作业,这里有一个算法:
1.打印标题。
2.清除正在运行的总变量。
3.虽然不是文件的结尾
3.1读取记录。
3.2打印记录内容
3.3将记录字段值添加到运行的总变量中(提示!提示!)
3.4.结束时
4.打印运行的总变量
您可能需要对运行的总变量进行一些额外的计算,尤其是平均值
编辑1:运行总变量的示例
int sum = 0; // This is the running total variable.
const unsigned int QUANTITY = 23;
for (unsigned int i = 0; i < QUANTITY; ++i)
{
cout << "Adding " << i << " to sum.\n";
sum += i;
}
cout << "Sum is: " << sum << "\n";
cout.flush();
char reply = 'n';
while (tolower(reply) != 'y')
{
cout << "Do you want to quit? (y/n)";
cout.flush();
cin >> reply;
cin.ignore(1000, '\n'); // Eat up newline.
}
cout << "Thanks for the answer.\n";
cout.flush();
因为这是作业,所以这里有一个算法:
1.打印标题。
2.清除正在运行的总变量。
3.虽然不是文件的结尾
3.1读取记录。
3.2打印记录内容
3.3将记录字段值添加到运行的总变量中(提示!提示!)
3.4.结束时
4.打印运行的总变量
您可能需要对运行的总变量进行一些额外的计算,尤其是平均值
编辑1:运行总变量的示例
int sum = 0; // This is the running total variable.
const unsigned int QUANTITY = 23;
for (unsigned int i = 0; i < QUANTITY; ++i)
{
cout << "Adding " << i << " to sum.\n";
sum += i;
}
cout << "Sum is: " << sum << "\n";
cout.flush();
char reply = 'n';
while (tolower(reply) != 'y')
{
cout << "Do you want to quit? (y/n)";
cout.flush();
cin >> reply;
cin.ignore(1000, '\n'); // Eat up newline.
}
cout << "Thanks for the answer.\n";
cout.flush();
在每次迭代中,生成相关的输出,但不要将其流式传输到std::cout
。相反,将其流式传输到一个对象。然后,在最后,将该对象流式传输到std::cout
。只需保持输入值的连续累积,即可完成数学运算
当然,这假设使用std::stringstream
不被视为“欺骗”在本作业练习的上下文中。在每次迭代中,生成相关输出,但不要将其流式传输到std::cout
。相反,将其流式传输到对象。然后,在最后,将该对象流式传输到std::cout
。只需保持输入值的连续累积,即可完成数学运算
当然,这是假设在本家庭作业练习中使用std::stringstream
不被视为“作弊”。由于不能使用数组或向量,我认为您应该在处理每辆车时打印其停车数据。伪代码:
While more cars:
Read data for next car
Calculate cost
Print data
Add to running totals
End while
Print totals
由于不能使用数组或向量,我认为应该在处理每辆车时打印其停车数据。伪代码:
While more cars:
Read data for next car
Calculate cost
Print data
Add to running totals
End while
Print totals
我的建议是使用一个递归方法,该方法首先接受输入,询问是否有更多的输入。如果有更多的输入,它会调用自己。如果没有更多的输入,它会输出当前的car,然后返回一个到目前为止在结构中添加的总和
这个方法唯一的问题是,它会以与输入相反的方式输出输入的cars,但这样做时不需要保存数组或文件。我的建议是使用递归方法,该方法首先接受输入,询问是否有更多的输入。如果有更多的输入,它会调用自己。如果没有更多的输入,它会调用自己输出它的当前车,然后返回一个到目前为止在结构中添加的总和
这种方法唯一的问题是,它会以与输入相反的方式输出输入的汽车,但它会在没有数组或文件保存的情况下输出。那么您面临的问题是什么?也不是私人教师;我们在这里帮助解决特定的代码问题。我不知道数据存储在哪里,因为我们不能使用数组。也许您我们应该用链表来代替。你现在在课堂上学习了什么?我们已经复习了控制结构和functions@John:询问讲师或在网上查询“求和变量”或“运行总计”变量。请参见下面我的回答。顺便问一下,不需要存储数据。您面临的问题是什么?也不是私人教师;我们在这里帮助解决特定的代码问题。我不知道在哪里存储数据,因为我们不能使用数组。也许您应该使用链表。您在中学习了什么现在上课?我们已经复习了控制结构和functions@John:询问讲师或在网上查询“求和变量”或“运行总计”变量。请参阅下面我的回答。顺便说一句,不需要存储数据。+1不建议从数组的行为开始。我可以在其中存储记录吗?因为记录应该是无限扩展的。-1文件是一个可能的解决方案,但学生还没有涵盖任何文件。@oli和我的大多是l我完全正确。问题是用户需要输入所有的小时数,然后程序在用户输入后打印出费用