8 -11作業匯總

8、15work


1、自己獨立寫出冒泡排序及選擇排序

一、冒泡排序

二、選擇排序


2. 找出數組元素中,差值(絕對值)最小的兩個元素。

int[] intArr ={20,90,13,88,1,15,40};

//差值最小的兩個數的下標

int miny = 0;

int minx = 0;

//最小差值、

int minDf = Math.Abs (intArr [0] - intArr [1]);

for (int i = 0; i < intArr.Length - 1; i++) {

for (int j = i + 1; j < intArr.Length; j++) {//前面兩個比較過了 ,從第二個開始,為了后面兩個也取到 只-1

//計算兩個數的差值

int dif = Math.Abs (intArr [i] - intArr [j]);

if (minDf > dif) {

minDf = dif;

minx = i;

miny = j;

}

}

}

Console.WriteLine ("{0},{1}", minx, miny);

3.? 使用數組描述正整數的二進制表示,如5,則數組為{1,0,1} 。

int n? =int.Parse(Console.ReadLine ());

string binatyStr = "";

while (n > 0) {

int i = n %2;

binatyStr += i;//字符串拼接起來

n /= 2 ;

}

// Console.WriteLine (binatyStr);

//字符串長度即是數組長度

int[] binary = new int[binatyStr.Length];

//得到字符串的字符數組

char[] chars? = binatyStr.ToCharArray ();

int j =0;

for (int i = binatyStr.Length - 1; i >= 0; --i) {

binary [i] = chars [j] - 48;//把char 最后一個放到? int第一個去

++j;

}

for (int i = 0; i < binatyStr.Length; ++i) {

Console.Write (binary[i]);

}

C:

4、思考和實現簡單插入排序

插入排序

選擇第一個有序數a {0 }

int[] intArr ={20,90,13,88,1,15,40};

int temp;

//記錄需要比較的數的下標

int p;

for(int i = 1;i < intArr .Length;i++){// 往前比 i 不用等于 0

temp = intArr[i];// temp = 第 i 個

p = i -1;

while (p >= 0 && temp < intArr [p]) {

//后移操作

i是不變的? [p+1]是因為第一位的時候p = -1;

intArr [p + 1] = intArr [p];

--p;

}

intArr [p + 1] = temp;

}

for (int i = 0; i < intArr.Length; ++i) {

Console.Write (intArr[i]+" ");



8、16work

1、輸入一個5行5列的二維數組,編程實現:

(1)求出其中的最大值和最小值及其對應的行列位置.


const int m = 5;

const int n = 5;

int[,] arr = new int[5,5];

for(int i = 0;i<5;i++){

for (int j = 0; j < 5; j++) {

arr [i, j] = int.Parse (Console.ReadLine ());

}

}

//

int max = arr [0, 0], max_x = 0, max_y = 0;

int min = arr [0, 0], min_x = 0,min_y = 0;

for (int i = 0; i < 5; ++i) {

for (int j = 0; j < 5; ++j) {

if (max < arr [i, j]) {

max = arr [i, j];

max_x = i;

max_y = j;

}

if (min > arr [i, j]) {

min = arr [i, j];

min_x = i;

min_y = j;

}

}

}

Console.WriteLine ("最小值{0} 對應位置為{1} {2}", max, max_x, max_y);

Console.WriteLine ("最小值{0} 對應位置為{1} {2}", min, min_x, min_y);

(2)求出對角線上各元素之和.

int[,] arr = new int[5,5]{{11,21,31,41,15},{12,34,11,13,14},{32,21,22,43,41},{6,3,1,5,2},{10,12,91,12,34}};

int sum = 0;

for (int i = 0; i < 5; ++i) {

for (int j = 0; j < 5; ++j) {

if (i == j) {

sum += arr [i, j];

}

}

}

Console.WriteLine ("sum = "+ sum);

2. 求{"a","ba","bc","bad","abcde"}這個字符串數組中,字母a出現的次數

string[] arr = {"aaaa","aaba","bc","bad","abcde"};

int time = 0;

for (int j = 0; j < arr.Length; j++) {

string a = arr [j];

char[] chars = a.ToCharArray ();

for (int i = 0; i < chars.Length; i++) {

if (chars [i] == 'a') {

time++;

}

}

}

Console.WriteLine (time );

foreach (string str in arr) {

foreach (char ch? in str) {//在string 中可以取出char 類型

if (ch == 'a') {

++time;

}

}

}

Console.WriteLine ("time ="+ time );

B:

3. 有一行英文語句,統計其中的單詞個數(規定:單詞之間以空格分隔),并將每一個單詞的第一個字母改為大寫

string? a ="hello boy how are you be be";

char[] chars = a.ToCharArray ();

int number = 0;

for (int i = 0; i < chars.Length; i++) {

if (chars [0] <= 122 && chars [0] >= 97) {

char z = (char)(chars [0] - 32);

chars [0] = z;

}

if (chars [i] == ' ') {

number++;

char x = (char)(chars [i + 1] - 32);

chars [i + 1] = x;

}

}

for (int i = 0; i < chars.Length; i++) {

Console.Write (chars [i]);

}

Console.WriteLine (number+1);

string? a ="? hello boy how are you be be? ";

// string []str =? a.Split (' ');//根據空格分割字符串數組? string方法? 數組長度即是單詞數量

string new_a = a.Trim();//去掉前后空格

int number = 0;

char[] charArr = new_a.ToCharArray();//轉成一個新的字符數組

for (int i = 0; i < new_a.Length; ++i) {

char ch = charArr? [i];

if (i == 0) {

if (ch >= 97 && ch <= 122) {

charArr [i] = (char)(ch - 32);

}

}

if (ch == ' ') {

number++;

char next_ch = new_a.ToCharArray () [i + 1];//把下一個轉成字符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//檢查是否為小寫字母

if (next_ch >= 97 && next_ch <= 122) {

charArr [i + 1] = (char)(next_ch - 32);

}

}

}

// string new_str = new string (charArr);//

string? new_str = "";

foreach(char? ch in charArr){

new_str += ch.ToString();

}

Console.WriteLine (new_str);

C:

4. 求二維數組{{1,2,3},{4,5,6},{7,8,9}}的鞍點。(鞍點:在行中最大,在列中最小的元素的位置,二維數組也可能沒有鞍點)

11? 21 31

10 50 70

//5 21 31

int [,] arr = {{4,21,31},{6,11,31},{7,21,31}};

int max_i = 0, max_j = 0;

//找出行最大的數? 再在列中比較

for (int i = 0; i < 3; i++) {

int max = 0;

for (int j = 0; j < 3; ++j) {//判斷是否是行中最大

if (max < arr [i, j]) {

max = arr [i, j];

max_i = i;

max_j = j;

}

}

bool isSaddlePoint = true;

for (int k = 0; k < 3; k++) {//判斷是否是列中最小的

if (max > arr [k, max_j]) {

isSaddlePoint = false;

}

}

if (isSaddlePoint == true) {

Console.WriteLine ("有鞍點? {0}? {1}",max_i,max_j);

}

}

8、17

題型比較簡單,枚舉題型 參考C#(10)

// 1、定義一個枚舉類型PrimitiveType用來表示常用的游戲物體,

// 該枚舉包含枚舉數:正方行Cube,膠囊體Capsule,圓柱體Cylinder,平面Plane,四邊形Quad。

// 定義該枚舉類型的變量并賦值,輸出其默認的整型值


2、建立一個描述日期(Data)的枚舉,描述星期一到星期天。

// 然后實現如下代碼:

// 周一去釣魚,

// 周二去爬山,

// 周三去上課,

// 周日在家休息。

// 完成設定后輸出即可。

8yue18

1、分別根據X,? X和Y,XYZ? ? 初始化三維向量 ,同時YZ ,Z為初始值

2、//創建學生結構體 包含姓名,年齡,學號,分數,有5個學生保存在結構體數組中,編程找出分數最高者

? ? ? //對學生數組按照年齡排序并讓學生按照年齡升序進行自我介紹


周末思考題

1、模擬電影票選座系統,將100個座位號當做10*10二維數組,然后用0表示該座位未售出,1表示已售出,? ? ? ? ? ? 任意顧客來買票時,若為1張,則隨即抽取一個編號,若為2張,優先選擇并排連續的座位,若無連座,則隨即選取2個座位號。(使用隨機數模擬)

2、現需要開發一款卡牌類手游,

每個玩家可以選擇一名英雄并開始游戲,游戲中會可以不斷提升等級和不斷獲得新裝備。直至通關。

?請創建結構體存放英雄的信息,和裝備的信息(自行補充信息)【騰訊面試題】

3、.? 有100000個qq號,從000000到999999不等,在只讀取1遍的前提下將其中重復的qq號挑出。(使用隨機數模擬,數組長度不限)【谷歌面試題】

4、思考1000的階乘尾部有多少個0。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容