[英]Triangle number program in C language?
我想做一個簡單的三角形數程序1, 3, 6, 10,...
不超過100
,我已經做到了。 但問題不大
讓我們看看我的代碼:
#include <stdio.h>
int main (void){
int j=1 , k=1 , i=100 , status;
while (k <= i){
j = j + 1;
k = k + j;
while ( k < 100){
printf (" %d\n",k);
status = 1;
break;
}
}
if (status == 1){
printf ("DONE!");
}
}
output:
3
6
10
15
21
28
36
45
55
66
78
91
DONE !
從這里,我有一些問題:
While
命令,因為當我只使用一個While
output 將大於100
它將是105
。 那么有一種方法可以通過使用一個while
命令來簡化這一點嗎?1
開頭,我想讓程序輸出如下:1
3
6
10
15
21
28
36
45
55
66
78
91
DONE !
但最后,output 總是以數字3
開頭?
你的方法太復雜了。 您只需要一個循環、一個運行總和和一個變量來保存要添加到總和的下一個值。
從零開始運行總和,然后加 1 並打印總和,然后加 2 並打印總和,然后加 3 並打印總和......繼續這樣做,直到總和超過 100。
喜歡:
#include <stdio.h>
int main(void) {
int sum = 0;
int nextToAdd= 1;
while(1)
{
sum += nextToAdd;
++nextToAdd;
if (sum > 100) break;
printf("%d\n", sum);
}
return 0;
}
或者如果你更喜歡 do-while
#include <stdio.h>
int main(void) {
int sum = 1;
int nextToAdd = 1;
do
{
printf("%d\n", sum);
++nextToAdd;
sum += nextToAdd;
} while(sum <= 100);
return 0;
}
或者如果您更喜歡 for 循環
#include <stdio.h>
int main(void) {
int sum = 1;
for (int nextToAdd = 2; sum <= 100; ++nextToAdd)
{
printf("%d\n", sum);
sum += nextToAdd;
}
return 0;
}
當你只使用一個 while 時,當k=91
所以k<=100
並且while
的條件為真,所以你將輸入 while, k
將變為105
,你將打印它。 所以你需要一個if
在printf
之前檢查if(k<100)
。
同樣在這里,如果您初始化k=0
並替換k+=j
並使用j++
您還將打印1
。
看:
int main()
{
int k = 1, j = 2, i = 100;
while (k <= i) {
printf("%d\n", k);
k += j;
j++;
}
printf("DONE!");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.