第二次上機作業(2020 12 5)

2021-10-11 20:56:59 字數 3081 閱讀 7723

題目一

已知乙個矩陣,儲存在乙個二維陣列中。將矩陣中和值為最大的那一行

元素與首行對換。

思路:先定義short型別smax並取最小值,對矩陣中每一行求和,將第一行的和值賦給smax,再對後面每一行求和,比較得出最大值,並得出最大值的行數row。最後利用for迴圈將和值最大的一行的每個元素與第一行互換。

**如下

#include

using

namespace std;

intmain()

if(s > smax)

}for

(int j =

0; j <=

4; j++

)system

("pause");

return0;

}

題目二

已知乙個方陣,儲存在乙個二維陣列中。用指標訪問陣列元素的方法,計算方陣中上三角所有元素的和、下三角所有元素的和,以及主對角線上的所有

元素和。

思路:先定義方陣arr,再定義指向其的指標p,並用p來訪問陣列中的元素,通過迴圈一次求出所需值。

**如下

#include

using

namespace std;

intmain()

,,,,

};int(

*p)[5]

= arr;

int i, j, sum1=

0, sum2=

0, sum3=0;

for(

int i =

0; i <=

4; i++)}

cout << sum1 << endl;

for(

int i =

0; i <=

4; i++)}

cout << sum2 << endl;

for(

int i =

0; i <=

4; i++)}

cout << sum3 << endl;

system

("pause");

return0;

}

題目三

判斷字串是否是「回文」。所謂「回文」是指順讀和逆讀都是一樣的串,例如串 12321 和 madam 都是回文。

#include

using

namespace std;

const

int sz =

100;

intmain()

}if(is_palindrome)

cout <<

"the string is a palindrome"

<< endl;

else

cout <<

"the string is not a palindrome"

<< endl;

return0;

}

要求:重新定義回文為:慮去所有非字母字元(包括空格)後,不考慮字母的大小寫,從左向右和從右向左讀都相同的詞或短語。如「madam,i』m adam」和「golf,no sir,prefer prison flog!」。改寫上面程式,用string來代替字元陣列來完成相同操作。

思路:本題主要通過carray1中的每個字元的ascii碼來判斷字元是否為非小寫字母字元,並將數字和符號刪去,將大寫字母通過ascii碼加32轉化為小寫。將滿足條件的carray1中的字元通過加法運算賦值給空字串carray2,由此來判斷carray1是否為新定義的回文數。

**如下

#include

#include

using

namespace std;

intmain()

if(carray1[i]

>

96&& carray1[i]

<

123)}}

int len2 = carray2.

length()

;for

(int i =

0; i < len2 /

2; i++)}

if(is_palindrome)

cout <<

"the string is a palindrome"

<< endl;

else

cout <<

"the string is not a palindrome"

<< endl;

return0;

}

題目四思路:生成偽隨機數n,並通過運算得到介於1到n之間的乙個數m,定義乙個含有n個1的bool型別容器v,對容器中的每個元素進行訪問,如果元素是1,則進行報數(num1+1),當num1等於m時,將本次訪問的元素賦值為0,不參與報數。當迴圈到容器尾部時,令其繼續迴圈,直到容器內值為1的元素個數num2=1,退出迴圈,最後利用迴圈依次訪問處理後的容器中的元素,輸出值為1的元素的序號。

**如下

#include

#include

using

namespace std;

intmain()

for(

int j =

0; j < n; j++)}

if(j == n -

1&& num2 !=1)

}for

(int i =

0; i < n; i++)}

system

("pause");

return0;

}

總結:本次上機題目後兩道較有難度,涉及題目資訊的處理,如何將其轉化為計算機語言是個難題,經過較長時間的翻閱資料與嘗試才勉強完成,體現出我現在程式設計能力依然比較薄弱,但我也因此收穫許多,明白了陣列,容器vector,字串string的簡單的使用方法與語法規則,希望以後多加努力,查缺補漏,逐步提公升。

第二次上機作業

已知乙個矩陣,儲存在乙個二維陣列中。將矩陣中和值為最大的那一行 元素與首行對換。include using namespace std void swap int a,int b intmain int max 0,t 0 for int i 0 i 3 i int sum 0 for int j ...

第二次上機

題目 1 已知乙個矩陣,儲存在乙個二維陣列中。將矩陣中和值為最大的那一行 元素與首行對換。利用陣列進行操作 include include using namespace std intmain 乙個4 4的矩陣 cout 請輸入 vector int s n 儲存和 int m 和值最大的行 fo...

C 第二次上機實驗作業

一 問題及 檔名稱 1.cpp 作 者 鄒鴻運 完成日期 2016年 3月 25 日 版 本 號 codeblocks 對任務及求解方法的描述部分 1 完成第四題的類的定義。2 要求求出平均數和總數。輸入描述 無 問題描述 完成學生成績的輸出。程式輸出 使用類和物件以及函式的呼叫。問題分析 使用函式...