你好,我正试图写一个程序,给我的三角数字每5到50个数字。必须放在桌子上。我让桌子开始工作,每隔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;
}
最佳答案
行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)
,需要使用上面所示的*
运算符。