C++简介:生成一个转换表,通过while或do/while循环将度数转换为弧度

Intro to C++: Generating a conversion table for converting degrees to radians with a while or do/while loop

本文关键字:转换 while do 通过 循环 简介 C++ 一个      更新时间:2023-10-16

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

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常量:如何在C++中使用PI常量

您可能需要一个数组来存储转换。例如:degrees_to_radians[180] = 3.14

在do-while循环中,将数组索引设置为当前度数值,并将其设置为等于转换为弧度的度数值。

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在循环内进行计算后为假(之后度数为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所说的那样,进行弧度/度数转换并将其存储在数组中。

另外,注意你的分号。