【发布时间】:2020-07-15 06:14:16
【问题描述】:
我想做一个简单的三角数程序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!");
}
}
输出:
3
6
10
15
21
28
36
45
55
66
78
91
DONE !
从这里,我有一些问题:
- 我使用两个
While命令,因为当我只使用一个While时,输出将大于100,它将是105。那么有没有一种方法可以通过使用一个while命令来简化这一点? - 输出不以数字
1开头,我想让程序输出如下:
1
3
6
10
15
21
28
36
45
55
66
78
91
DONE !
但最后,输出总是以数字3?
【问题讨论】:
-
请在您显示的代码上做一些rubber duck debugging。您何时打印与您对
k的修改相关的k的值?内循环的目的是什么,它的真正作用是什么? -
向后工作,您可以看到
k是j + 1和j是2。1 + 1 + 1是...? -
当我只使用
k <= i并打印k值时,输出值将是105,这比我想要的值“低于100”要多,所以我制作第二个循环k<100并在第二个循环中打印k值并得到我想要的结果并将变量status更改为1。if函数将检查status变量,如果status是1打印DONE!
标签: c loops while-loop conditional-statements