第三章学习小结


对于实践题,我先是通过看书和上网查阅了资料确定了这道题的主要步骤,先确定总数,然后每次来个编号,奇数和偶数分成两队,接着先奇后偶的顺序放入一个数组里输出,于是确定总数编号我采用这种代码: #include<stdio.h>#include<algorithm>#include<stdlib.h>using namespace std;int main(void){ int A[1001];/*用两个数组模拟两个队列*/ int B[1001]; int n,number,j= 0,k=0; scanf("%d",&n); for(int i = 0; i < n; i++) { scanf("%d",&number);/*用scanf收集队列的数据*/ if(number % 2 != 0)/*根据输入的数据是否能整除2进行对A队和B队进行赋值*/ { A[j++] = number; } else { B[k++] = number; } } int J = 0,K = 0; while(j > 0 && k > 0)/*根据题意可知,A输出2个,B输出一个是一个循环,只要A,B中任意一个输出完就退出循环*/ { for(int i = 0; i < 2; i++) { printf("%d",A[J++]); if(n != 1)/*当前这个人不是最后一个人就输出空格*/ { printf(" "); } j--;n--;/*A中人数和总人数-1*/ } for(int i = 0; i < 1; i++) { printf("%d",B[K++]); if(n != 1)/*当前这个人不是最后一个人就输出空格*/ { printf(" "); } k--;n--;/*B中人数和总人数-1*/ } } while(j>0)/*将A中剩下的人输出*/ { printf("%d",A[J++]); if(j != 1) { printf(" "); } j--; } while(k>0)/*将B中剩下的人输出*/ { printf("%d",B[K++]); if(k != 1) { printf(" "); } k--; } return 0;} 分析写在注释里面了。

#include<stdio.h>
#include<algorithm>
#include<stdlib.h>
using namespace std;

int main(void)
{
int A[1001];/*用两个数组模拟两个队列*/
int B[1001];
int n,number,j= 0,k=0;
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
scanf("%d",&number);/*用scanf收集队列的数据*/
if(number % 2 != 0)/*根据输入的数据是否能整除2进行对A队和B队进行赋值*/
{
A[j++] = number;
}
else
{
B[k++] = number;
}
}
int J = 0,K = 0;
while(j > 0 && k > 0)/*根据题意可知,A输出2个,B输出一个是一个循环,只要A,B中任意一个输出完就退出循环*/
{
for(int i = 0; i < 2; i++)
{
printf("%d",A[J++]);
if(n != 1)/*当前这个人不是最后一个人就输出空格*/
{
printf(" ");
}
j--;n--;/*A中人数和总人数-1*/
}

for(int i = 0; i < 1; i++)
{
printf("%d",B[K++]);
if(n != 1)/*当前这个人不是最后一个人就输出空格*/
{
printf(" ");
}
k--;n--;/*B中人数和总人数-1*/
}
}

while(j>0)/*将A中剩下的人输出*/
{
printf("%d",A[J++]);
if(j != 1)
{
printf(" ");
}
j--;
}
while(k>0)/*将B中剩下的人输出*/
{
printf("%d",B[K++]);
if(k != 1)
{
printf(" ");
}
k--;
}
return 0;
}

posted @ 2019-03-31 23:57  Hycomin  阅读(131)  评论(2编辑  收藏  举报