8、15work
1配猫、自己獨(dú)立寫出冒泡排序及選擇排序
一幅恋、冒泡排序
二、選擇排序
2. 找出數(shù)組元素中泵肄,差值(絕對(duì)值)最小的兩個(gè)元素佳遣。
int[] intArr ={20,90,13,88,1,15,40};
//差值最小的兩個(gè)數(shù)的下標(biāo)
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++) {//前面兩個(gè)比較過了 凡伊,從第二個(gè)開始,為了后面兩個(gè)也取到 只-1
//計(jì)算兩個(gè)數(shù)的差值
int dif = Math.Abs (intArr [i] - intArr [j]);
if (minDf > dif) {
minDf = dif;
minx = i;
miny = j;
}
}
}
Console.WriteLine ("{0},{1}", minx, miny);
3.? 使用數(shù)組描述正整數(shù)的二進(jìn)制表示窒舟,如5系忙,則數(shù)組為{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);
//字符串長(zhǎng)度即是數(shù)組長(zhǎng)度
int[] binary = new int[binatyStr.Length];
//得到字符串的字符數(shù)組
char[] chars? = binatyStr.ToCharArray ();
int j =0;
for (int i = binatyStr.Length - 1; i >= 0; --i) {
binary [i] = chars [j] - 48;//把char 最后一個(gè)放到? int第一個(gè)去
++j;
}
for (int i = 0; i < binatyStr.Length; ++i) {
Console.Write (binary[i]);
}
C:
4风宁、思考和實(shí)現(xiàn)簡(jiǎn)單插入排序
插入排序
選擇第一個(gè)有序數(shù)a {0 }
int[] intArr ={20,90,13,88,1,15,40};
int temp;
//記錄需要比較的數(shù)的下標(biāo)
int p;
for(int i = 1;i < intArr .Length;i++){// 往前比 i 不用等于 0
temp = intArr[i];// temp = 第 i 個(gè)
p = i -1;
while (p >= 0 && temp < intArr [p]) {
//后移操作
i是不變的? [p+1]是因?yàn)榈谝晃坏臅r(shí)候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蛹疯、輸入一個(gè)5行5列的二維數(shù)組,編程實(shí)現(xiàn):
(1)求出其中的最大值和最小值及其對(duì)應(yīng)的行列位置.
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} 對(duì)應(yīng)位置為{1} {2}", max, max_x, max_y);
Console.WriteLine ("最小值{0} 對(duì)應(yīng)位置為{1} {2}", min, min_x, min_y);
(2)求出對(duì)角線上各元素之和.
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"}這個(gè)字符串?dāng)?shù)組中戒财,字母a出現(xiàn)的次數(shù)
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. 有一行英文語句,統(tǒng)計(jì)其中的單詞個(gè)數(shù)(規(guī)定:?jiǎn)卧~之間以空格分隔)捺弦,并將每一個(gè)單詞的第一個(gè)字母改為大寫
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 (' ');//根據(jù)空格分割字符串?dāng)?shù)組? string方法? 數(shù)組長(zhǎng)度即是單詞數(shù)量
string new_a = a.Trim();//去掉前后空格
int number = 0;
char[] charArr = new_a.ToCharArray();//轉(zhuǎn)成一個(gè)新的字符數(shù)組
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];//把下一個(gè)轉(zhuǎn)成字符
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//檢查是否為小寫字母
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. 求二維數(shù)組{{1,2,3}蝇更,{4遵蚜,5,6}寞钥,{7慌申,8,9}}的鞍點(diǎn)理郑。(鞍點(diǎn):在行中最大蹄溉,在列中最小的元素的位置,二維數(shù)組也可能沒有鞍點(diǎn))
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;
//找出行最大的數(shù)? 再在列中比較
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 ("有鞍點(diǎn)? {0}? {1}",max_i,max_j);
}
}
8您炉、17
題型比較簡(jiǎn)單柒爵,枚舉題型 參考C#(10)
// 1、定義一個(gè)枚舉類型PrimitiveType用來表示常用的游戲物體邻吭,
// 該枚舉包含枚舉數(shù):正方行Cube餐弱,膠囊體Capsule,圓柱體Cylinder囱晴,平面Plane膏蚓,四邊形Quad。
// 定義該枚舉類型的變量并賦值畸写,輸出其默認(rèn)的整型值
2驮瞧、建立一個(gè)描述日期(Data)的枚舉,描述星期一到星期天枯芬。
// 然后實(shí)現(xiàn)如下代碼:
// 周一去釣魚论笔,
// 周二去爬山,
// 周三去上課千所,
// 周日在家休息狂魔。
// 完成設(shè)定后輸出即可。
8yue18
1淫痰、分別根據(jù)X,? X和Y最楷,XYZ? ? 初始化三維向量 ,同時(shí)YZ ,Z為初始值
2籽孙、//創(chuàng)建學(xué)生結(jié)構(gòu)體 包含姓名烈评,年齡,學(xué)號(hào)犯建,分?jǐn)?shù)讲冠,有5個(gè)學(xué)生保存在結(jié)構(gòu)體數(shù)組中,編程找出分?jǐn)?shù)最高者
? ? ? //對(duì)學(xué)生數(shù)組按照年齡排序并讓學(xué)生按照年齡升序進(jìn)行自我介紹
周末思考題
1适瓦、模擬電影票選座系統(tǒng)竿开,將100個(gè)座位號(hào)當(dāng)做10*10二維數(shù)組,然后用0表示該座位未售出犹菇,1表示已售出德迹,? ? ? ? ? ? 任意顧客來買票時(shí),若為1張揭芍,則隨即抽取一個(gè)編號(hào)胳搞,若為2張,優(yōu)先選擇并排連續(xù)的座位称杨,若無連座肌毅,則隨即選取2個(gè)座位號(hào)。(使用隨機(jī)數(shù)模擬)
2姑原、現(xiàn)需要開發(fā)一款卡牌類手游悬而,
每個(gè)玩家可以選擇一名英雄并開始游戲,游戲中會(huì)可以不斷提升等級(jí)和不斷獲得新裝備锭汛。直至通關(guān)笨奠。
?請(qǐng)創(chuàng)建結(jié)構(gòu)體存放英雄的信息,和裝備的信息(自行補(bǔ)充信息)【騰訊面試題】
3唤殴、.? 有100000個(gè)qq號(hào)般婆,從000000到999999不等,在只讀取1遍的前提下將其中重復(fù)的qq號(hào)挑出朵逝。(使用隨機(jī)數(shù)模擬蔚袍,數(shù)組長(zhǎng)度不限)【谷歌面試題】
4、思考1000的階乘尾部有多少個(gè)0配名。