题目要求:
从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。要求尽可能使用函数实现程序代码。平均值为小数的只保留其整数部分。
知识点:
动态数组是在程序运行时创建的,可以根据用户需要,有效利用存储空间;静态数组在声明时就已经确定大小的数组,即数组元素的个数固定不变。
静态数组:
int a[10];
int a[]={1,2,3};
数组的长度必须为常量。
动态数组:
int len;
int *a=new int [len];
delete a;
数组的大小可以为变量。
注意不能这样做:
int p[len];
C++编译器会报错说len的大小不能确定,因为用这种形式声明数组,数组的大小需要在编译时确定。
也不能这样:
int p[]=new int[len];
编译器会说不能把int*型转化为int[]型,因为用new开辟了一段内存空间后会返回这段内存的首地址,所以 要把这个地址赋给一个指针,所以要用int *p=new int[len];
代码:
没有用动态数组在蓝桥杯测试系统中也可以通过:
#include <iostream>
using namespace std;
int ans(int a[],int n){