题目内容:班级第一次列队,通常老师会让同学按身高排成一列,然后1、2报数,喊到1的同学向前一 步,就这样,队伍就变成两列了。假设现在一个班级有n个同学,并且他们已经按身高排成 了一列,同学按身高从1到n编号,你能告诉我最后哪些编号的同学站在了第一列么?
输入格式:
输入一个正整数n,表示班级的人数。
输出格式:
按顺序输出所有在第一列的同学对应的编号,每两个编号之间用一个空格隔开,最后一个编号后面没有空格。
输入样例:
11
输出样例:
1 3 5 7 9 11
#include <stdio.h>
int main(void)
{
int n,x=1;
scanf("%d",&sum);
if(n%2==0){ //判断总人数是偶数还是奇数 是偶数就执行下列语句 是奇数就执行else后的语句
while(x<n-1){
printf("%d ",x);
x=x+2;
//因为总人数是偶数,因此只要输出小于总人数的所有奇数就能完成题目
}
if(x=n-1)
printf("%d",x);//输出最后一个数的时候 注意空格
}
else
{
while(x<n){
printf("%d ",x);
x=x+2;
}
if(x=n)
printf("%d",x);
//因为总人数是奇数,因此只要输出总人数以内的所有奇数即可(包括总人数)
return 0;
}
}
我也是刚学C语言没几天,可能在思路上不是最简化的,但我觉得这种做法大部分人应该都能看懂,所以分享一下我对这道题的做法,希望能对大家有所帮助^^