C程序不使用分号即可打印从1到N的数字

在这里,我们将看到一个棘手的问题解决方案。我们将打印一些从1到N的数字,而不使用任何分号。

我们可以用两种不同的方法解决这个问题。第一个是迭代方法,第二个是递归方法。

方法1

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

方法2

在第二种方法中,我们将看到如何使用递归来完成相同的任务。我们将通过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