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 }