一、问题及代码 :
/*
* 文件名称:Test.cpp
* 作 者:胡嘉威
* 完成日期:2017 年 3 月 21 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分: 从键盘中输入10个数放在数组A中,将该数组中奇数放到数组B,偶数放到数组C中后分别输出。
* 输入描述:1234567898
* 问题描述:从键盘中输入10个数放在数组A中,将该数组中奇数放到数组B,偶数放到数组C中后分别输出。
* 程序输出:数组B中的元素有:1 3 5 7 9
数组C中的元素有:2 4 6 8 8
* 问题分析:要进行数组分离,重要的就是数组内元素的储存与转移
* 算法设计:让用户连续输入10个数,此时在电脑看来是只输入一个整数,可通过for循环语句将这个数拆分为10个元素,一一存入到数组A中,再根据相应的条件把数组A中的元素分到数组B和C中
*/
#include <iostream>
using namespace std;
int main()
{
int x,i,j=0,k=0;
int a[10];
int b[100],c[100];
cout<<"请输入10个数:"; /*可以连续输入10个数,方便使用者*/
cin>>x;
for(i=9; i>=0; i--) //按顺序把输入的10个数储存在数组a[i]中
{
a[i]=x%10;
x=x/10;
}
for(i=0; i<10; i++)
{
if(a[i]%2!=0) //判定元素是否为偶数,然后分到数组B或者C中去
{
b[j]=a[i];
j++;
}
else
{
c[k]=a[i];
k++;
}
}
cout<<"数组B中的元素有:"; //输出数组B中的元素
for(i=0; i<j; i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
cout<<"数组C中的元素有:"; //输出数组C中的元素
for(i=0; i<k; i++)
{
cout<<c[i]<<" ";
}
cout<<endl;
return 0;
}
二、运行结果 :
三、心得体会 :
做的时候遇到了一点困难,请教学长后才明白如果不加限制地输出可以容纳过多元素的数组中的元素,其结果很可能会出现随机数值。我要继续努力,加油!
四、知识点总结 :
数组内元素的存放与提取要通过for循环语句来实现,数组的输出一般也要通过for循环语句实现;要注意当所定义数组的容量大于要输出的元素个数时,输出时要对输出元素个数加以限制.