C ++简介:生成转换表,使用while或do / while循环将度数转换为弧度

时间:2014-09-12 19:23:41

标签: c++ while-loop do-while

我的问题是:使用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循环,而且我在运行代码时遇到了麻烦。任何提示将不胜感激!

3 个答案:

答案 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的说法进行弧度/度数转换并将它们存储在数组中。

另外,请注意你的分号。