三角数

时间:2014-02-21 00:58:53

标签: c numbers geometry

您好我正在尝试编写一个程序,它给出了每5个数字5到50的三角形数字。它必须在表格中设置。我得到了工作台,每5个数字5到50个。然而,三角形数字也随之出现!我不认为我的程序是循环的。

另外,我的书说我必须使用公式triangularNumber = n(n + 1)/ 2但我一直收到错误。

以下是我的课程的下半部分(星星是我班级所需的横幅,但我保证上半部分的一切都是正确的)

int main() {

    // [... snipped ... ]

    printf("***********************************************************\n\n\n\n\n");

    int n, triangularNumber;

    triangularNumber = n (n + 1) / 2;

    printf ("TABLE OF EVERY 5TH TRIANGULAR NUMBER\n\n");
    printf (" n    Sum from 1 to n\n");
    printf ("--- ------------------\n");

    for ( n = 5; n <= 50; n +=5 )  {
        triangularNumber = n;

        printf ("  %i         %i\n", n, triangularNumber );
    }

    return 0;
}

3 个答案:

答案 0 :(得分:1)

triangularNumber = n (n + 1) / 2行位置错误;计算仅发生在该行上,此时n未初始化。

您需要在循环内移动计算,以便每个n发生一次:

for ( n = 5; n <= 50; n +=5 )  {
    triangularNumber = n * (n + 1) / 2;
    printf ("  %i         %i\n", n, triangularNumber );
}

如果您打算定义如何计算triangularNumber,那么在C中执行此操作的方法是编写一个函数,例如:

int triangularNumber (int n) {
    return n * (n + 1) / 2;
}

然后调用triangularNumber(n)获取值。 (在这种情况下,公式很短,只在一个地方使用,因此几乎不需要编写函数。)

另请注意,在C语言中,您无法编写n(n + 1)进行乘法运算,您需要使用*运算符,如上所示。

答案 1 :(得分:0)

您需要实际计算该值。将此行printf (" %i %i\n", n, triangularNumber );更改为printf (" %i %i\n", n, n * (n+1) / 2 );

答案 2 :(得分:-1)

triangularNumber应该是一个函数,而不是一个变量。试试这个。

int triangularNumber (int n)
{
    return n * (n + 1) / 2;
}