1 #include<stdio.h>
 2
 3 int main(void)
 4 {
 5     int n;
 6
 7     scanf("%d", &n);
 8
 9     for (int i = 1; i <= n; i++)
10     {
11         if (i % 2 == 1)
12         {
13             if ((i == n) || (i + 1 == n))  //判断i是不是队列中的倒数第一个数或者倒数第二个数
14             {
15                 printf("%d", i);
16             }
17             else
18             {
19                 printf("%d ", i);
20             }
21         }
22     }
23
24     return 0;
25 }

一开始,我写的程序,是要找到最后一个符合要求的数,确保这个数的后面没有空格。

后来看了网上的博客,想到,如果能确定第一个符合要求的数,这个数的前面没有空格,然后后面符合要求的数前面都有空格,也符合题目的要求。

想了,第二种方法更为简单。

 1 #include<stdio.h>
 2
 3 int main(void)
 4 {
 5     int n;
 6
 7     scanf_s("%d", &n);
 8
 9     for (int i = 1; i <= n; i++)
10     {
11         if (i % 2 == 1)
12         {
13             if (i == 1)
14             {
15                 printf("%d", i);
16             }
17             else
18             {
19                 printf(" %d", i);
20             }
21         }
22     }
23
24     return 0;
25 }
01-04 16:58