找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人尊貴會員無限下載附件尊貴會員無限看帖不用回覆
人妻上原亞衣明日花fc2juliagdvr
圖片閱讀[カルガりの 國dandy 91練氣練了無碼 mgmimk 134

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]從Lv2開始開外掛

[繁]月光下的異世界之

[簡]被稱為廢物的原英

[繁]DATE A LIVE 約會

[繁]魔法科高中的劣等

[簡]單人房、日照一般
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 3492|回復: 4
打印上一主題下一主題

[求助]請問我程式碼哪裡出了問題?[複製鏈接]

Rank: 2Rank: 2

帖子
9
積分
266 點
潛水值
34790 米
跳轉到指定樓層
樓主
發表於 2013-4-2 10:18 PM|只看該作者|倒序瀏覽
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
本帖最後由 arthurliuliu 於 2013-4-5 06:51 AM 編輯

題目:我要寫10組1~49的亂數,每組6個數字,而且每一組的數字不能重複

我現在寫到最後的問題是,有時候一直狂按F5,陣列0和1的位子有時就會重複,不知道我的邏輯哪出了問題,
麻煩大大幫忙找出問題了^^
以下是我的程式碼
  1. int[] a = new int[6];
  2. Random rd = new Random();
  3. int tem = 0;
  4. tem = rd.Next(1, 50);
  5. a[0] = tem;
  6.             for (int k = 0; k < 10; k++)
  7.             {
  8.                 for (int i = 1; i < a.Length; i++)
  9.                 {
  10.                     tem = rd.Next(1, 50);
  11.                     for (int j = 0; j < a.Length - 1 ; j++)
  12.                     {
  13.                         if (tem == a[j])
  14.                         {
  15.                             tem = rd.Next(1, 50);
  16.                             j = 0;
  17.                         }
  18.                     }
  19.                     a[i] = tem;
  20.                 }
  21.                 Array.Sort(a);
  22.                 for (int l = 0; l < a.Length; l++)
  23.                 {
  24.                     Console.Write(a[l] + " ");
  25.                 }
  26.                 Console.WriteLine();
  27.            }
  28.             Console.Read();
複製代碼
02.發帖/回帖未依規定包住程式碼(-5分)
板主代為編輯 arthurliuliu


...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

托勒斯 該用戶已被刪除
頭香
發表於 2013-4-5 09:49 PM|只看該作者
本帖最後由 托勒斯 於 2013-4-5 09:50 PM 編輯
  1.             Random rd = new Random();
  2.             for (int k = 0; k < 10; k++)
  3.             {
  4.                 int[] a = new int[6];
  5.                 int tem = 0;
  6.                 tem = rd.Next(1, 50);
  7.                 a[0] = tem;
  8.                 for (int i = 1; i < a.Length; i++)
  9.                 {
  10.                     tem = rd.Next(1, 50);
  11.                     for (int j = 0; j < a.Length-1; j++)
  12.                     {
  13.                         if (tem == a[j])
  14.                         {
  15.                             tem = rd.Next(1, 50);
  16.                             j = 0;
  17.                         }
  18.                     }
  19.                     a[i] = tem;
  20.                 }
  21.                 Array.Sort(a);
  22.                 for (int l = 0; l < a.Length; l++)
  23.                 {
  24.                     Console.Write(a[l] + " ");
  25.                 }
  26.                 Console.WriteLine();
  27.             }
  28.             Console.Read();
複製代碼

...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 2Rank: 2

帖子
518
積分
363 點
潛水值
27175 米
3
發表於 2013-4-8 03:27 PM|只看該作者
裡面的回圈中j = 0;
是要讓他重新跑吧,
應該j = -1,
跑下一圈時j會加一,
j才會從頭跑,
我只是大概看過邏輯沒RUN過,
你看看吧

使用道具檢舉

Rank: 2Rank: 2

帖子
147
積分
501 點
潛水值
6793 米
4
發表於 2013-4-13 02:54 AM|只看該作者
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
本帖最後由 GravitationX 於 2013-4-13 03:17 AM 編輯

不用狂按F5就有可能會發生重複了,我建議你改用洗牌法(shuffle),簡單快速又省事。

你會發生重複的狀況在這:
亂數產生一樣的值,你以為j = 0是重頭開始檢查,其實不是,j++是for迴圈最後才執行的,這種狀況就會變成是從a[1]開始檢查,而不是從a[0],a[0]只有在第一次進入for (int j...) 迴圈時才有被檢察到。
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

btlevis 該用戶已被刪除
5
發表於 2013-9-20 07:29 PM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
有時可以利用 Debug 工具去逐步看執行的結果.




使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部