第二次作业
1.第一版本程序Prog1: + 给定一个数组,实现数组元素求和;,具体要求:实现对一维数组(a[100])的所有元素相加运算。 + 数据准备:a)数组长度:100;b)数组数据来源:实验数据A列:1~100,CSV 格式则填充 前100个数据.
#include <iostream>
#include <fstream> //fstream头文件,ifstream读取
using namespace std;
int main (void)
{
int a[100];
int sum=0;
ifstream in("D:\\数据.txt");
for(int i=0;in>>a[i],i<100;i++)
sum=sum+a[i];
cout<<100个元素的和为:<<sum<<endl;
in.close(); //关闭文件
return 0;
}
2.第二版本程序Prog2: + 改写成一个函数(函数名称为ArraySum),能实现任意长度数组所有元素求和; + 数据准备:a)数组长度:任意; b)数组数据来源:实验数据A列.
基本就是将第一题照搬过来,将元素个数设置为参数
#include <iostream>
#include <fstream>
using namespace std;
void ArraySum(int n)
{ int *a=new int[n]; //数组元素初始化
int sum=0;
ifstream in("D:\\数据.txt");
for(int i=0;in>>a[i],i<n;i++)
sum=sum+a[i];
cout<<sum;
in.close();
}
int main(void)
{int a;
cout<<"输入任意数组长度:";
cin>>a;
cout<<"元素的和为:";
ArraySum(a); //调用函数
return 0;
}
3. 第三版本程序Prog3: + 将Prog2改写成能从文件中读取数据,实现任意长度数组,指定范围内元素相加。 + 数据准备:a)数组长度:任意; b)数组数据来源:从文件中读取:从文件中读取(A列). c)指定范围: (bottom, top)。
#include <iostream>
#include <fstream>
using namespace std;
void ArraySum(int n,int min,int max)
{
int sum=0,i;
int *a=new int[n];
ifstream in("D:\\数据.txt");
for( i=0;in>>a[i],i<n;i++)
{
if(a[i]>=min&&a[i]<=max)
sum=sum+a[i];
}
cout<<"元素的和为:“<<sum<<endl;
in.close();
}
int main(void)
{
int n=0,min,max;
cout<<"指定范围最小值:";
cin>>min;
cout<<"指定范围最大值:";
cin>>max;
cout<<"输入任意数组长度:";
cin>>n;
ArraySum(n,min,max); //调用函数
return 0;
}