第二次作业
-
第一版本程序Prog1: + 给定一个数组,实现数组元素求和;,具体要求:实现对一维数组(a[100])的所有元素相加运算。 + 数据准备:a)数组长度:100;b)数组数据来源:实验数据A列:1~100,CSV 格式则填充 前100个数据.
源代码
#include<iostream> #include<fstream> using namespace std; int main(void) { int a[100]; int sum=0; ifstream f("D:\\a.txt"); for(int i=0;f>>a[i],i<100;i++) sum+=a[i]; cout<<sum<<endl; return 0; }
实验结果
简单的数组求和,并没有什么难度,数据的提取通过TXT文档来实现。
-
第二版本程序Prog2: + 改写成一个函数(函数名称为ArraySum),能实现任意长度数组所有元素求和; + 数据准备:a)数组长度:任意; b)数组数据来源:实验数据A列.
源代码
#include<iostream> #include<fstream> using namespace std; void ArraySum(int n) { int *a; a=new int[n]; int sum=0; ifstream f("D:\\a.txt"); for(int i=0;f>>a[i],i<n;i++) sum+=a[i]; cout<<sum<<endl; delete []a; } int main(void) { int n;//数组长度 cout<<"数组长度"<<endl; cin>>n; ArraySum(n); return 0; }
实验结果
相对于一开始,多了一个数组的长度并没有给定,所以直接在函数里定义数组。
-
第三版本程序Prog3: + 将Prog2改写成能从文件中读取数据,实现任意长度数组,指定范围内元素相加。 + 数据准备:a)数组长度:任意; b)数组数据来源:从文件中读取.
源代码
#include<iostream> #include<fstream> using namespace std; void ArraySum(int n,double x,double y) { int *a; a=new int[n]; int sum=0; ifstream f("D:\\a.txt"); for(int i=0;f>>a[i],i<n;i++) if(a[i]>=x&&a[i]<=y) sum+=a[i]; cout<<sum<<endl; delete []a; } int main(void) { int n;//数组长度 double x;//求和元素最小值 double y;//求和元素最大值 cout<<"数组长度"<<endl; cin>>n; cout<<"求和元素最小值"<<endl; cin>>x; cout<<"求和元素最大值"<<endl; cin>>y; ArraySum(n,x,y); return 0; }
增加求和元素的范围,求和之前筛选出满足条件的求和元素
实验结果
在编程过程中,要求提取CSV格式数据,这方面并没有了解所以选择了C++中的文件流提取TXT中的数据
上传github https://github.com/Superbiali/data