在这里,我们将看到一个棘手的问题解决方案。我们将打印一些从1到N的数字,而不使用任何分号。
我们可以用两种不同的方法解决这个问题。第一个是迭代方法,第二个是递归方法。
该printf()
函数返回字符串的长度,因此它是一个非零值。我们可以对条件执行逻辑与以打印结果。然后增加计数器的值。
#include<stdio.h> #define N 20 int main(int num, char *argv[]) { while (num <=N && printf("%d ", num) && num++) { //while主体为空。 } }
输出结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
在第二种方法中,我们将看到如何使用递归来完成相同的任务。我们将通过main函数传递一些参数。该主体将被递归调用。
#include<stdio.h> #define N 20 main(int val) { if (val <=N && printf("%d ", val) && main(val + 1)) { //主体为空 } }
输出结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20