C++ 输入一个动态数组 先输入数组长度 然后赋值

C++ 输入一个动态数组 先输入数组长度 然后赋值 然后计算平均值,大于平均值的输出一个数组,小于平均值的输出一个数组。

按要求,输出一组大于平均的值 和 一组小于平均的值,不输出等于平均的。
#include<iostream>
using namespace std;
#include <stdio.h>
#include <math.h>
int main( )
{
double *a,ave=0;
int i,n;
printf("input n:\n");
scanf ("%d",&n);
a = (double *)malloc(sizeof(double) * n);
printf("input the %d data:\n",n);
for (i=0;i<n;i++) scanf("%lf",&a[i]);
for (i=0;i<n;i++) ave=ave+a[i];
ave = ave/n;
printf("value > mean: ");
for (i=0;i<n;i++) if (a[i]>ave) printf("%lf ",a[i]);
printf("\n");
printf("value < mean: ");
for (i=0;i<n;i++) if (a[i]<ave) printf("%lf ",a[i]);
return 0;
}
例如:
input n:
6
input the 6 data:
1 2 3 4 5 6
value > mean: 4.000000 5.000000 6.000000
value < mean: 1.000000 2.000000 3.000000
例如:
input n:
5
input the 5 data:
5 5 5 5 5
value > mean:
value < mean:
不输出等于平均的数据

value < mean: 1.000000 2.000000 3.000000追问

就是 这个应该是C的吧 scanf这个在VS2015都是被淘汰的语句,我不太懂 还是谢谢 分一定给.一定采纳,我想问的是用指针定义一个动态数组长度 然后赋值 然后计算平均值 比较每一个数组的元素和平均值的大小 大于输出一个数组 小于输出一个数组

不管怎么样谢谢百忙帮我,,,诚挚的感谢 我是一个新手这是一个作业 上课听不懂 谢谢

追答

上面就是c++。
C是c++的一部份,c++里可以用 c。c 里不能用 c++。
你也可以用 scanf_s, 也可以用 cin, 看你的编译器和自己喜好。
cin >> n; for (i=0;i> a[i];
malloc 也可以用 new. 你可以用你熟悉的喜欢的。

温馨提示:内容为网友见解,仅供参考
无其他回答

C++怎样动态设定数组的长度?(把数组长度用变量表示,通过输入确定长度的...
cout<<"输入元素个数:";p=new int[a];for(int i=0;i>p[i];

C++ 动态数组赋值
首先你问这问题根本就不懂初始化和赋值的区别,还有就是“动态数组赋值“这是你自己发明的词吧,我工作6年了没听说过有这么个东西!!!int a[]={10,9,8};(这个不是赋值,这个是初始化,int这个类里自己定的方式)和int a[3]; a[0] = 10; a[1] = 9; a[2] = 8;(这个才叫赋值...

c++动态定义数组长度
你可以先定义一个全局指针变量(如果要求整型数组的话就是int* a,字符型就是char* a等),指针你可以把它理解成数组int a[],这里数组a就相当于int*a,但这时指针还没有分配内存空间,只要分配了就相当于数组,但比数组的优势在于可以动态定义长度,如果分配了空间之后a中存储的值就是分配的空间的位...

请问:C++中数组长度怎么动态分配?!
int N ;\/\/ 定义一个int型整数 N \/\/当N的值确定以后,再定义数组 int *p = new int[N];\/\/p[N]就是你要的数组 \/\/但是这种方法,数组不用以后,必须自己释放 delete []p; \/\/释放数组

C++中float动态数组怎样赋值?
<iostream>using namespace std;void main(){ float *f;int n; \/\/ 数组的位数 cin >> n;f = new float[n];for(int i=0;i<n;i++)f[i] = i;for(int i=0;i<n;i++) cout << f[i] << " ";cout << endl;delete [] f;} \/\/ 一个完整的程序, 希望帮到你 ...

...个数字就为数组分配多少内存,如何实现,动态输入的,不是一开始就确定...
int x = 1;输入x int* a = new int[x];a[0~x]就可以用了

C++动态数组的空间能不能重新申请,比如先定义数组a[n],再输入n的大小...
p = new int[n];(n是可变的)delete [ ]p;(必须的步骤)动态数组空间就是选取内存中的一块,使用完之后要释放,不然就可能造成内存泄露。至于你说的,可以重复申请不,当然可以。重复以上步骤就行了。p只是一个指针,里面存着内存地址。你可以赋值给其他指针是没问题的。例如int * L = p;(这样...

C++如何实现输入数组的个数,然后建立这个数量的数组?
代码如下:include <iostream>using namespace std;int main(){ int n; cout << "请输入数组元素个数"; cin >> n; \/\/ 建立数组 int *arr = new int[n]; \/\/ 赋值 for (int i = 0; i < n; i++) arr[i] = i; \/\/ 输出 for (int i = 0; ...

C\\C++语言如何定义数组数组长度由键盘输入
C\\C++本身不支持动态数组,但是可以通过动态申请内存实现由键盘输入长度的方式确定数组长度。实现代码如下:int num;cout<<“请输入数组大小”;cin>>num;int *p=new int[num];\/\/这里就可以使用这个动态数组了。delete []p; \/\/不用的时候务必自己删除内存 ...

数组问题(c语言),如何让输入者定义个数,并输入数值,形成数组
不过,你所提的要求还是可以实现的,一般的做法是,可以先假设一个较大的数(不超过你所想输入的输入的数组长度的最大值MXLENGTH,)作为初始定义时数组大小,然后在输入数组时,在程序中设置判断语句,判断已输入长度是否到达用户所要输入的长度,若已到达则结束输入。include<stdio.h> define MAXLENGTH ...

相似回答