数组求和
prog1
数组求和并没有难度,重点就是如何在程序中读取文件里的数据。我上网百度了才了解了文件流fstream函数的用法。自己尝试着读取csv文件数据时答案总是错误的,参观了别的同学的博客才发现他们是把A列数据单独导出保存为txt再读取的,照做了之后果然成功了,虽然不是全部靠自己的努力做出来的,但是依然很高兴。参观同学的博客时也发现了一个小问题,就是有些人在读取数据之后没有调用close函数将文件关闭,这样会造成内存的占用,虽然只是一点点的内存。
#include<iostream> #include<fstream> using namespace std; int main(void) { int a[100]; int i=0; int sum=0; ifstream fin("d:\\shuju.txt"); if(!fin) {cout<<"不能打开文件\n";} for(i=0;fin>>a[i],i<100;i++) { sum+= a[i];} fin.close(); cout<<sum<<endl; return 0; }
prog2
这个程序和第一个没什么区别,就是多了函数的定义和调用,还好我的c++书没有扔掉,又复习了一遍函数的内容。
#include<iostream> #include<fstream> using namespace std; ArraySum(int i) { int *a=new int[i]; int sum=0; int n=0; ifstream fin("d:\\shuju2.txt"); if(!fin) {cout<<"不能打开文件\n";} for(n=0;fin>>a[n],n<i;n++) { sum+= a[n];} fin.close(); return sum; } int main(void) {int i; cout<<"输入数组长度"<<endl; cin>>i; cout<<"长度为"<<i<<"的数组和为"<<ArraySum(i)<<endl; return 0; }
prog3
同样,没有大的区别,只是多了个范围限制条件和数组的动态内存申请。
#include<iostream> #include<fstream> using namespace std; ArraySum(int bottom,int top,int i ) { int sum=0; int n; int *a=new int[n]; ifstream fin("d:\\shuju2.txt"); if(!fin) {cout<<"不能打开文件\n";} for(n=0;fin>>a[n],n<i;n++) {if(bottom<=a[n]&&top>=a[n]) sum+=a[n]; } fin.close(); return sum; } int main() { int top,bottom; cout<<"输入top:"; cin>>top; cout<<"输入bottom:"; cin>>bottom; int i; cout<<"输入数组长度为:"; cin>>i; cout<<"数组和为"<<ArraySum(bottom,top,i)<<endl; }
我觉得这次作业让我对于c++一些基础知识又加深了印象,主要就是学会了文件流的一些简单用法。实践是检验我们掌握了多少知识的唯一真理。
https://github.com/liuxiangLX