你好,我正在尝试编写一个程序,为我提供从 5 到 50 的每 5 个数字的三角数。它必须在表格中设置。我让表格开始工作,每 5 个数字从 5 到 50。但是,三角形数字也出现了!我认为我的程序没有循环。
另外,我的书上说我必须使用公式 triangularNumber = n(n+1)/2 但我一直收到错误。
这是我程序的下半部分(星星是我类(class)需要的横幅,但我向你保证上半部分的一切都是正确的)
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;
}
最佳答案
行 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)
进行乘法运算,您需要使用 *
运算符,如上所示。
关于c - 三角数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21923066/