我的问题是:使用while或do / while循环编写程序以生成将度数转换为弧度的转换表。度数值从0度开始,增加10度并经过360度。
我在编码方面非常非常新,这适用于我的C ++类
到目前为止,我已经提出了这个问题:#include <iostream>
using namespace std;
int main()
{
double degrees, radians, degree1
do
{
radians = 3.14159265/180
degree1 = (0 * radians)
degrees = (degree1 + 10) * radians;
}
while (degrees > 360);
return 0;
}
但是,我并没有很好地掌握do-while循环,而且我在运行代码时遇到了麻烦。任何提示将不胜感激!
答案 0 :(得分:0)
您可能希望有一个数组来存储转换。例如:
degrees_to_radians[180] = 3.14
在do while循环中,让数组索引为以度为单位的当前值,并将其设置为等于转换为弧度的度数值。
答案 1 :(得分:0)
do-while保证至少会完成一个循环,并且它将循环直到while条件得到满足。然后,您必须将其更改为<=360
以达到您的目的。以下代码可以满足您的需求:
#include <iostream>
using namespace std;
double deg2rad(double deg)
{
return deg*3.14159265/180.f;
}
int main()
{
double degrees = 0;
do
{
cout << degrees << "\t" << deg2rad(degrees) << std::endl;
degrees += 10;
}
while (degrees <= 360);
return 0;
}
建议:尝试使用boost常量。 C / C ++常量或Boost常量:How to use the PI constant in C++
答案 2 :(得分:0)
Do-While循环的结构是“在某些事情是真的时做事”。从简单的事情开始。由于这是一个课堂作业,我不想只给你答案,但我会给出一个类似的例子。
假设你想数到100乘五。你想从0开始,在100处停止,然后以5递增。所以你想要一个看起来像这样的Do-While:
int count = 0;
do {
count = count + 5; // increment by 5
cout << count << endl; // print out the value of count
} while (count <= 100);
请记住,当语句为true时,循环继续。因此,在这种情况下,当count
小于或等于100时,您将继续执行“填充”。您提供的示例代码仅在循环中运行一次,因为条件degrees > 360
为false之后在循环内进行计算(之后度数为31.415 ......)。
我猜你刚刚学会了For-Loops并且现在应该做一些你通常使用For-Loop来做一些事情而不是使用While / Do-While。如果你要做一个与For-Loop相同的例子,它看起来像这样:
for (int count = 0; count <= 100; count += 5) {
cout << count << endl; // print out the value of count
}
现在,不要打印出值,而是按照@Tyler的说法进行弧度/度数转换并将它们存储在数组中。
另外,请注意你的分号。