數組求和


首先說明一下:

我並沒有學過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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM