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

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人認識好友、聊天,分享生活趣事你準備好成為出色的版主了嗎?
刀劍神域無碼新竹3dsiro按摩
false my巨乳~シゲヘナ破鏡重圓藥屋少女農門棄婦蠱惑の幼

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

[繁]歡迎來到實力至上

湖南湘潭 女老師因學

[繁]非自願的不死冒險

[BD繁]劇場版 少女與

✡ 斗破蒼穹 年番/鬥

斗破蒼穹 年番 鬥破蒼
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 5629|回復: 10

[作業] (已解決)C語言習題-黑暗角落[複製鏈接]

  高級幼兒生(30/200)

想把爽子帶回家!!叫我Ar就行了.....

Rank: 1

帖子
394
積分
184 點
潛水值
14750 米
發表於 2016-1-6 04:28 PM|顯示全部樓層
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
本帖最後由 asd13155913 於 2016-1-9 10:23 AM 編輯

  • ●【題目名稱】:黑暗角落
  • ●【目前問題】:對於C++並未十分熟悉
  • ●【編譯環境】:DEV-C++
  • ●【期望執行結果】:能夠將解答藉由C語言所呈現出來
  • ●【備註】:((所找到的C++版本的解答,但並非十分了解其中的含意
    1. #define k 7
    2. using namespace std;
    3. int main(){
    4.   for(int i=0;i<2;i++) {
    5.   void light(int x, int y, int* arr);
    6.   int arr[k][k],count=0;
    7.   for(int y=0; y<k; y++)
    8.       for(int x=0; x<k; x++)
    9.           cin>>arr[x][y];
    10.   for(int y=0; y<k; y++)
    11.       for(int x=0; x<k; x++)
    12.           if( arr[x][y]==2 )
    13.               light(x,y,arr[0]);
    14.   for(int y=0; y<k; y++){
    15.       for(int x=0; x<k; x++)
    16.           if( arr[x][y]==0 )      cout<<"□";
    17.           else if( arr[x][y]==1 ) cout<<"■";
    18.           else if( arr[x][y]==2 ) cout<<"◎";
    19.           else                    cout<<"‧";
    20.       cout<<endl;
    21.   }        
    22.   for(int y=0; y<k; y++)
    23.       for(int x=0; x<k; x++)
    24.           if( arr[x][y]==0 )
    25.               count++;
    26.   cout<<"沒被照到的有:"<<count<<"格"<<endl;            
    27.   }
    28.   system("pause");   
    29. }
    30. void light(int x, int y, int* arr){
    31.   int Sx=x,Sy=y;
    32.   //left up right down
    33.   for(int px=x-1, py=y; px>=0 && arr[px*k+py]==0 || arr[px*k+py]==3 ; px--) arr[px*k+py]=3;
    34.   for(int py=y-1, px=x; py>=0 && arr[px*k+py]==0 || arr[px*k+py]==3 ; py--) arr[px*k+py]=3;
    35.   for(int px=x+1, py=y; px<k  && arr[px*k+py]==0 || arr[px*k+py]==3 ; px++) arr[px*k+py]=3;
    36.   for(int py=y+1, px=x; py<k  && arr[px*k+py]==0 || arr[px*k+py]==3 ; py++) arr[px*k+py]=3;  
    37. }
    複製代碼


...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
!!如果有人能回復 我會很高興喲!

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
3222
積分
24364 點
潛水值
76910 米
發表於 2016-1-6 07:39 PM|顯示全部樓層
本帖最後由 snowflying 於 2016-1-6 07:42 PM 編輯

7 ~ 9 行是輸入地圖資訊
10 ~ 13 是找出燈光位置,然後呼叫 light 函式,從該位置往上下左右點亮格子
14 ~ 21 行只是輸出地圖樣貌而已
22 ~ 25 去數沒被點亮的白色格子有幾個

要改成 C,標頭檔、輸入輸出、宣告處理一下,就差不多了
另外,void light(int x, int y, int* arr); 丟到 main 前面吧
...
瀏覽完整內容,請先 註冊登入會員
Melty Snow [雪靈]
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

samou568 該用戶已被刪除
發表於 2016-1-7 01:05 PM|顯示全部樓層
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
還有輸入, 輸出 (cin, cout) 要改
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

  高級幼兒生(30/200)

想把爽子帶回家!!叫我Ar就行了.....

Rank: 1

帖子
394
積分
184 點
潛水值
14750 米
發表於 2016-1-7 02:47 PM|顯示全部樓層
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
本帖最後由 asd13155913 於 2016-1-7 02:49 PM 編輯
snowflying 發表於 2016-1-6 07:39 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

7 ~ 9 行是輸入地圖資訊
10 ~ 13 是找出燈光位置,然後呼叫 light 函式,從該位置往上下左右點亮格子
14 ~  ...
...
瀏覽完整內容,請先 註冊登入會員
!!如果有人能回復 我會很高興喲!
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
3222
積分
24364 點
潛水值
76910 米
發表於 2016-1-7 03:01 PM|顯示全部樓層
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
asd13155913 發表於 2016-1-7 02:47 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

請問C++的輸出輸入所對應C的輸出輸入是那些??

要說對應有點難,因為可以說是不同的東西

C 比較常用的就是
...
瀏覽完整內容,請先 註冊登入會員





Melty Snow [雪靈]

使用道具檢舉

  高級幼兒生(30/200)

想把爽子帶回家!!叫我Ar就行了.....

Rank: 1

帖子
394
積分
184 點
潛水值
14750 米
發表於 2016-1-7 03:18 PM|顯示全部樓層
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
本帖最後由 asd13155913 於 2016-1-7 03:20 PM 編輯
snowflying 發表於 2016-1-7 03:01 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

要說對應有點難,因為可以說是不同的東西

C 比較常用的就是
...
瀏覽完整內容,請先 註冊登入會員
!!如果有人能回復 我會很高興喲!
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
3222
積分
24364 點
潛水值
76910 米
發表於 2016-1-7 04:37 PM|顯示全部樓層
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
asd13155913 發表於 2016-1-7 03:18 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

恩!C的這部分了解!另外 下面的函數33~36行

換為C是要如何表示出來??不太清楚33~36行

二維陣列想像成一個座標平面
...
瀏覽完整內容,請先 註冊登入會員

點評

asd13155913 程式碼接下來要如何更動才會符合需求@@"?  發表於 2016-1-8 05:47 PM
Melty Snow [雪靈]
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

dh3014 該用戶已被刪除
發表於 2016-1-8 12:05 AM|顯示全部樓層
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
33-36行的寫法大抵上在C語言是一模一樣不變的。

真要說某些較舊的C語言版本會不允許 for (int px = ...)這樣的寫法,那也只需要把int px, py;的宣告放到函式的最前面即可。(較早期的C語言會要求「變數宣告」的行為必須要在函式的一開始全部完成)
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

  高級幼兒生(30/200)

想把爽子帶回家!!叫我Ar就行了.....

Rank: 1

帖子
394
積分
184 點
潛水值
14750 米
發表於 2016-1-8 01:50 AM|顯示全部樓層
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
本帖最後由 asd13155913 於 2016-1-12 10:43 PM 編輯
snowflying 發表於 2016-1-7 04:37 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

二維陣列想像成一個座標平面
以這一行來說

卡住了...不知道下來要更動那些!!"((回復好像不能貼上程式碼...
...
瀏覽完整內容,請先 註冊登入會員

點評

snowflying 原來的筆電送修中, 回來的時候再回  發表於 2016-1-8 08:25 PM
snowflying printf 加上左刮號 是敏感字詞  發表於 2016-1-8 10:24 AM
!!如果有人能回復 我會很高興喲!
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
3222
積分
24364 點
潛水值
76910 米
發表於 2016-1-9 12:49 AM|顯示全部樓層
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define print printf
  4. #define k 7

  5. void light(int x, int y, int* arr);

  6. int main()
  7. {
  8.   int arr[k][k] , count = 0 , x , y;
  9.   
  10.   for(y = 0 ; y < k ; y++)
  11.       for(x = 0 ; x < k ; x++)
  12.           scanf("%d" , &arr[x][y]);
  13.          
  14.   for(y = 0 ; y < k ; y++)
  15.       for(x = 0 ; x < k ; x++)
  16.           if( arr[x][y] == 2 )
  17.               light(x , y , arr[0]);
  18.               
  19.   for(y = 0 ; y < k ; y++)
  20.   {
  21.       for(x = 0 ; x < k ; x++)
  22.       {
  23.           if( arr[x][y] == 0 )      print("%s" , "□");
  24.           else if( arr[x][y] == 1 ) print("%s" , "■");
  25.           else if( arr[x][y] == 2 ) print("%s" , "◎");
  26.           else                    print("%s" , "‧");
  27.       }
  28.       putchar('\n');
  29.   }
  30.   
  31.   for(y = 0 ; y < k ; y++)
  32.       for(x = 0 ; x < k ; x++)
  33.           if( arr[x][y] == 0 )
  34.               count++;
  35.               
  36.   print("沒被照到的有:%d格\n" , count);            
  37.   system("pause");
  38. }
  39. void light(int x, int y, int* arr)
  40. {
  41.   int Sx = x , Sy = y , px , py;
  42.   //left up right down
  43.   for(px=x-1, py=y; px>=0 && arr[px*k+py]==0 || arr[px*k+py]==3 ; px--) arr[px*k+py]=3;
  44.   for(py=y-1, px=x; py>=0 && arr[px*k+py]==0 || arr[px*k+py]==3 ; py--) arr[px*k+py]=3;
  45.   for(px=x+1, py=y; px<k  && arr[px*k+py]==0 || arr[px*k+py]==3 ; px++) arr[px*k+py]=3;
  46.   for(py=y+1, px=x; py<k  && arr[px*k+py]==0 || arr[px*k+py]==3 ; py++) arr[px*k+py]=3;  
  47. }
複製代碼
因為 printf 加左刮號 是敏感字詞
所以用 print,前面加個 #define print printf
...
瀏覽完整內容,請先 註冊登入會員





點評

asd13155913 嗯!謝謝雪.靈使的協助了!!",(((突然想去最適解答申請區,但好像發現有點矛盾了....."  發表於 2016-1-9 10:25 AM
Melty Snow [雪靈]

使用道具檢舉

帖子
2
積分
1 點
潛水值
3870 米
發表於 2017-6-28 11:04 PM|顯示全部樓層
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

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

Powered by Discuz!

© Comsenz Inc.

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