首先说明一下:
我并没有学过C#至于Java也只上过两堂课,所以我只能选择C++【一个大写的不甘愿。对于学渣来说编程是一件非常头痛的事情
然后我们来看一下题目:
1.给定一个数组,实现数组元素求和:具体要求:实现对一维数组(a[100])的所有元素相加运算。
分析:对于第一题,我的第一想法是直接在源程序上输入100个元素,但是我是那样的人吗?!【对于懒癌患者当然是否定的(握爪)
又不想直接输入那么多的数据,又不知道怎么解决的情况下怎么办呢?【百度呀
哦...然后我就知道了fstream文件流
接下来就好办了呀,看了好多的例子,感觉会用fstream了,于是就试着写代码了【对了,我觉得这个网页的内容蛮不错的
http://www.newxing.com/Tech/Program/Cpp/577.html【呃,这只是对于我这种什么都不懂的菜鸟来说哦...
源程序:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int a[100];
int sum=0;
ifstream f1("E://A.txt");
for(int i=0;f1>>a[i],i<100;i++)
sum+=a[i];
cout<<"所有元素相加的和是:"<<sum<<endl;
return 0;
}
实验结果:
【注意上面的那代码当然不是我第一遍就打的出来的,我记得我刚打完的时候有好多个错误,像是什么;没加啊什么英文打错啊什么的超超超多,像这种错误我就没脸贴出来了
2.改写成一个函数(函数名称为ArraySum),能实现任意长度数组所有元素求和。
分析:由于第一题的启发,我觉得写第二题就并不是那么难了
源程序:
#include<iostream>
#include<fstream>
using namespace std;
void Arraysum(int n)
{
int *a,sum=0;
a=new int[n];
ifstream f2("E://B.txt");
for(int i=0;f2>>a[i],i<n;i++)
sum+=a[i];
cout<<sum;
delete []a;
}
int main(void)
{
int n;
cout<<"请输入数据长度:"<<endl;
cin>>n;
cout<<"所求元素的和:"<<endl;
Arraysum(n);
return 0;
}
实验结果:
3.将Prog2改写成能从文件中读取数据,实现任意长度数组,指定范围内元素相加。
源程序:
#include<iostream>
#include<fstream>
using namespace std;
int Arraysum(int n,int min,int max)
{
int *a;
int sum=0;
a=new int[n];
ifstream f3("E://B.txt");
{
for(int i=0;f3>>a[i],i<n;i++)
if(a[i]<=max&&a[i]>=min)
sum+=a[i];
}
cout<<"元素和为:"<<sum<<endl;
return sum;
}
int main()
{
int n=0;
int min;
int max;
cout<<"指定最小值:"<<endl;
cin>>min;
cout<<"指定最大值:"<<endl;
cin>>max;
cout<<"输入数组长度:"<<endl;
cin>>n;
Arraysum(n,min,max);
return 0;
}
实验结果:
最后总结一下:
做完这三道题对我的影响真的蛮大的,我是属于那种学完考过试就会很容易把之前所学知识忘记的人,而这些题目是我这学期第一次做的编程题,所以对我来说困难还是蛮大的,比如某些地方忘记加;还有文件流啊我都忘了。
但是学习计算机的如果连这些简单的地方都不记得的话真的非常说不过去,并且这些并不是属于那些很久才会用到的知识,而是以后要经常要用到的。
所以,经常复习回顾以前的知识也是十分重要的,【关键应该是要多操作多写代码吧,but真的写不出,宝宝心里苦哇。
Github:https://github.com/Shilijing