這兩個代碼都可以編譯,但只有第二個代碼能完成我想要的功能。 第一個代碼:這兩個計算三角形數字的程序有什麼區別?
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main()
{
int TriNumber = 0;
int n;
for(n = 5; n <= 50; n += 5)
TriNumber = ((n + 1) * n)/2;
printf("The trianglular number of %d is %d\n", n, TriNumber);
}
,輸出:
55 trianglular數量爲1275
下面的程序做什麼,我希望它:它打印的三角形數量爲每第五個整數在5和50之間。
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main()
{
int TriNumber = 0;
int n;
for(n = 5; n <= 50; n += 5)
printf("The trianglular number of %d is %d\n", n, TriNumber = (((n + 1) * n)/2));
}
W HICH給我的期望的輸出:
5的trianglular數爲15
要求10所述的trianglular數爲55
要求15所述的trianglular數目是120
20的trianglular數目是210
的trianglular的25號是325
30的trianglular數目是465
35 trianglular數目是630
40的trianglular數目是820
的trianglular NU 45 MBER是1035
的50 trianglular數量爲1275
我不明白爲什麼把TriNumber = ((n + 1) * n)/2;
在自己的行中第一碼和內printf
功能的第二代碼都會有這樣的不同的結果。
第一個片段計算'TriNumber'十次,然後打印一次。循環中'printf'不是**。 – user3386109
'for'是循環的開始。只要滿足循環條件,就會重複下一個_statement_。您的第一個示例是在循環結束後發生打印。你的第二個例子,打印是循環的一部分。 –
檢查課程筆記。在'for'循環語句之後直接執行的唯一語句是...... – usr2564301