C++,一维数组。求高手前辈指点。
1.设有一个double型维数组a,长度为N(注意N值应满足以下操作需求)。建立该数组,并完成以下任务:(1)键盘输入15个实型数据存入数组a中,并按照每行输出5个的格式,输出该数组;
(2)计算a中元素的平均值,并将它存储在a中有效范围的末位(即a中已有15个有效元素,所以,该平均值应该被存入a[15]中。提示:数组长度不应小于16);
(3)调整a数组中前15个元素的位置,即存放平均值的元素a[15]保持不动。调整规则是:元素值低于平均值的放在后部、高于平均值的放在前部(相关算法参考案例4.1问题拓展①);
输出调整以后的a数组。
1的问题主要在于(3)中调整数组中的数据的前后顺序,使之满足大于平均数的数在前面,小于平均数的在后面。
2.建立两个int型的一维数组,分别起名为a和b,并完成以下任务:
(1)编制一个判定某数是否为素数的子函数prime(参见3.17验证哥德巴赫猜想);
(2)键盘输入10个数据(这些数中有奇数、也有偶数)存入数组a中;
(3)输出a数组中的最大值和下标,以及输出其最小值和下标;
(4)通过调用子函数prime,找出数组a中所有的素数,并存入数组b中;
(5)反向(即从后/bn-1到前/b0)输出b中元素,数据域宽为10。
2的问题是如何求数组a中的素数,并保存到数组b中,这个子函数该怎么定义?怎么调用?下面的是我写的代码,希望前辈高手帮我改一下,万分感谢。
#include<iostream>
using namespace std;
int prime(int n)
{ int i,j;
for(i=0;i<10;i++)
{for(j=2;j<a[i];j++)
{if(a[i]%j==0)
break;
if(a[i]==j)
b[i]=a[i];}}}
void main()
{cout<<"龚科2017111308"<<endl;
int a[10],b[10],max_num=0,min_num=0,i;
cout<<"请输入10个整数:"<<endl;
for(i=0;i<10;i++)
{cin>>a[i];}
{for(i=0;i<10;i++)
if(a[i]>a[max_num])
max_num=i;
else if(a[i]<a[min_num])
min_num=i;}
cout<<"a数组中最大值为:"<<a[max_num]<<" ";
cout<<"其下标为:"<<max_num<<endl;
cout<<"a数组中最小值为:"<<a[min_num]<<" ";
cout<<"其下标为:"<<min_num<<endl;
for(i=6;i>=0;i--)
cout<<b[i]<<endl;
system("pause");}