3.假定已經擷取題庫中的試題號,並存放在數組arrayKT中。例如,int[] arrayKT={10,13,18,19,20,22,30,31,···}定義一個靜態成員方法,該方法實現從上述數組中隨機抽出給定數量(n,1<=n<=arrayKT.Length)的考題,並組成一個考題字串。比如隨機從arrayKT中抽取5題組成考題字串:"10,18,20,22,30",要求,組成考題字串中考題不重複,且一定在數組中存在。
代碼如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace program{ class Program { static void Main(string[] args) { string s=getKTH(5,10,13,18,19,20,22,30,31,33); Console.WriteLine(s); Console.ReadKey(); } public static string getKTH(int n, params int [] arrayKT) { string str=""; Random rd = new Random(); int[] num = new int[]{-1,-1,-1,-1,-1}; for (int i = 0; i < 5; i++) { int k=rd.Next(arrayKT.Length); int t = 0; for (int j = 0; j < 5; j++) { if (k == num[j]) { t = 1; } } if (t == 1) { i--; continue; } num[i] = k; str+=arrayKT[k].ToString(); str += " "; } return str; } }}
學習心得:
這隻是做了一個特例,而且沒有添加異常處理。。。主要是博主比較懶T.T。。。太久沒使用for搭配continue,居然忘記了i同樣會+1這個問題,害的我找了好一會原因。