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

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人尊貴會員無限觀看附件圖片尊貴會員無限看帖不用回覆
我的英雄259luxu新竹中字kkbox流出安卓
sao人體嬌癮纏歡summer芙蕾雅sone 099魁儡

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

[繁]最狂輔助職業【話

打耳光可以 打車子就

[簡]重啟人生的千金小

[繁]青春之箱05-

[繁]香格里拉・開拓異

[繁]平凡職業造就世界
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 5873|回復: 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. }
    複製代碼


...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
分享分享0收藏收藏0支持支持0
!!如果有人能回復 我會很高興喲!
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

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

帖子
3230
積分
24427 點
潛水值
78800 米
頭香
發表於 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 該用戶已被刪除
3
發表於 2016-1-7 01:05 PM|只看該作者
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
還有輸入, 輸出 (cin, cout) 要改
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

  高級幼兒生(30/200)

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

Rank: 1

帖子
394
積分
184 點
潛水值
14750 米
4
發表於 2016-1-7 02:47 PM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
本帖最後由 asd13155913 於 2016-1-7 02:49 PM 編輯
snowflying 發表於 2016-1-6 07:39 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

7 ~ 9 行是輸入地圖資訊
10 ~ 13 是找出燈光位置,然後呼叫 light 函式,從該位置往上下左右點亮格子
14 ~  ...
...
瀏覽完整內容,請先 註冊登入會員
!!如果有人能回復 我會很高興喲!
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

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

帖子
3230
積分
24427 點
潛水值
78800 米
5
發表於 2016-1-7 03:01 PM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
asd13155913 發表於 2016-1-7 02:47 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

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

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

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





Melty Snow [雪靈]

使用道具檢舉

  高級幼兒生(30/200)

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

Rank: 1

帖子
394
積分
184 點
潛水值
14750 米
6
發表於 2016-1-7 03:18 PM|只看該作者
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
本帖最後由 asd13155913 於 2016-1-7 03:20 PM 編輯
snowflying 發表於 2016-1-7 03:01 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

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

C 比較常用的就是
...
瀏覽完整內容,請先 註冊登入會員
!!如果有人能回復 我會很高興喲!
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

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

帖子
3230
積分
24427 點
潛水值
78800 米
7
發表於 2016-1-7 04:37 PM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
asd13155913 發表於 2016-1-7 03:18 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

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

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

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

點評

asd13155913 程式碼接下來要如何更動才會符合需求@@"?  發表於 2016-1-8 05:47 PM
Melty Snow [雪靈]

使用道具檢舉

dh3014 該用戶已被刪除
8
發表於 2016-1-8 12:05 AM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
33-36行的寫法大抵上在C語言是一模一樣不變的。

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

使用道具檢舉

  高級幼兒生(30/200)

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

Rank: 1

帖子
394
積分
184 點
潛水值
14750 米
9
發表於 2016-1-8 01:50 AM|只看該作者
本帖最後由 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

帖子
3230
積分
24427 點
潛水值
78800 米
10
發表於 2016-1-9 12:49 AM|只看該作者
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
  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 [雪靈]
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

帖子
2
積分
1 點
潛水值
3870 米
11
發表於 2017-6-28 11:04 PM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

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

Powered by Discuz!

© Comsenz Inc.

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