題目一
已知乙個矩陣,儲存在乙個二維陣列中。將矩陣中和值為最大的那一行
元素與首行對換。
思路:先定義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 要求求出平均數和總數。輸入描述 無 問題描述 完成學生成績的輸出。程式輸出 使用類和物件以及函式的呼叫。問題分析 使用函式...