您的位置:首页 > 编程语言 > C语言/C++

C++第六次实验:数组操作

2016-05-19 10:41 302 查看
一、上机目的

熟练数组的使用

二、问题及代码

定义一个不重复的有初值的10个元素的整数数组a,利用冒泡法对数组a排序后完成以下操作(写在一个程序中)

1。从键盘中输入一个数x,删除a数组中值为x的数组元素;

2。从键盘中输入一个数x,将x插入到a数组后数组a依然有序;

/*
* 文件名称:数组操作
* 作    者:  吴奇峰
* 完成日期:  2016  年  5   月  19 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:数组及循环语句
* 输入描述: 输入十个数字
* 问题描述: 排序,删除及添加
* 程序输出: 输出排序,删除及添加后的结果
* 问题分析: 略
* 算法设计: 略
*/
#include<iostream.h>
void main()
{
int a[10],i,j,k,t,b,c;
cout<<"请输入十个不重复的数字:";
for(i=0;i<10;i++)                             //输入十个数字
cin>>a[i];
for(i=0;i<9;i++)                              //冒泡法排序
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])                       //相邻两项比较大小,交换次序。
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
cout<<"您输入的数字排序后为:";
for(i=0;i<10;i++)                             //输出排序后数组
cout<<a[i]<<'\0';
cout<<endl;
cout<<"请输入要删去的数字:";
cin>>b;
for(i=0;i<10;i++)
{
if(b==a[i])                               //判断是否与之相同
{
for(k=i;k<9;k++)                      //若相同,则将后面一位数赋给前面一位,依次顺延
a[k]=a[k+1];
cout<<"删去该数字之后的数组为:";
for(i=0;i<9;i++)                      //输出删除后的数组
cout<<a[i]<<'\0';
cout<<endl;
break;                                //由于数字无重复,可以跳出
}
if(i==9)                                  //若i==9,则确定该数组没有这个数
cout<<"该数组没有要删除的数字。"<<endl;
}
cout<<"请输入要添加的数字:";
cin>>c;
for(i=8;i>=0;i--)                             //倒序判断,便于赋值
{
if(c>a[i])
{
for(k=8;k>i;k--)                      //依次将前面的数赋给后面的数
a[k+1]=a[k];
a[i+1]=c;                             //将要添加的数添进去
break;
}
}
cout<<"添加该数字之后的数组为:";
for(i=0;i<10;i++)                             //输出添加后的数组
cout<<a[i]<<'\0';
cout<<endl;
}


三、运行结果



四、知识点总结:

数组的输入和输出要结合循环语句

可以通过冒泡法对数组进行排序

五、心得体会

掌握了冒泡法排序,可以对大量数据进行排序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: