【项目1:数组操作】定义一个不重复的有初值的10个元素的整数数组a,利用冒泡法对数组a排序后完成以下操作(写在一个程序中)
1。从键盘中输入一个数x,删除a数组中值为x的数组元素;
2。从键盘中输入一个数x,将x插入到a数组后数组a依然有序(在第一题基础上完成);
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
const N=10;
int a[10],i,j,locate,t,x,y;
cout<<"请输入不重复的10个数:"<<endl;
for(i=0;i<N;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;
}
}
for(i=0;i<N;i++) //排序后输出结果
cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
cout<<"从之前的数中输入一个数:"<<endl;
cin>>x;
for(i=0;i<N;i++)
if(x==a[i])
{
locate=i;
break;
}
for(i=locate;i<N-1;i++)
a[i]=a[i+1];
for(i=0;i<N-1;i++) //再次排序后输出结果
cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
cout<<"从键盘中输入一个数y:"<<endl;
cin>>y;
for(j=0;j<N-1;j++)
if(y>a[j] && y<=a[j+1])
{
locate=j+1;
break;
}
for(j=N-1;j>locate;j--)
a[j]=a[j-1];
a[j]=y;
for(i=0;i<N;i++) //最后排序后输出结果
cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
return 0;
}
【项目3:矩阵求和】
编写程序可求出矩阵a(3*3)的两条对角线上的元素之和。
#include<iostream>
using namespace std;
void main()
{
int i,j,sum1=0,sum2=0,a[3][3],sum;
cout<<"请输入矩阵a(3*3):"<<endl;
//cin>>n;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>a[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(i==j) sum1+=a[i][j];
if(i+j==2) sum2+=a[i][j];
}
sum=sum1+sum2-a[1][1];
cout<<"矩阵a(3*3)的两条对角线上的元素之和为:"sum<<endl;
}