问题:
编程序,实现如下功能:
(1)定义两个一维数组x,y,不超过50个元素。
(2)从键盘输入k个整数到数组x中。
(3)计算x中数据的平均值ave及大于平均值的元素个数n并输出。
(4)将数组x中数据复制到数组y中,重复的数据只存储一次,最后输出y中的数据。
代码:
#include<iostream>
using namespace std;
int main()
{
//数组x,y
int x[50],y[50];
//输入整数的个数k,大于平均数的元素个数n
int k,n=0;
//bool型变量flag以判断是否有重复元素
bool flag=true;
//数组x中k个整数的总和以及平均数
double sum=0,ave=0;
cin>>k;
//获取数组x,并计算总和
for(int i=0;i<k;i++)
{
cin>>x[i];
sum+=x[i];
}
//数组x的平均值ave
ave=sum/k;
cout<<"数组x的平均值ave:"<<ave<<endl;
cout<<"大于平均值的元素个数:";
for(int i=0;i<k;i++)
{
if(ave<x[i])
n++;
}
cout<<n<<endl<<"数组y的内容:";
int j=0;
//当前元素为x[m]时,查询m以后是否有 x[m]的重复元素。若有则m++;反之将x[m]存入数组y中并输出
for(int m=0;m<k;m++)
{
flag=true;
for(int b=m+1;b<k;b++)
{
if(x[m]==x[b])
{
flag=false;
//已找到重复元素,跳出当前循环,寻找下一个元素
break;
}
}
if(flag)
{
y[j]=x[m];
cout<<y[j]<<" ";
j++;
}
}
return 0;
}
运行结果: