題目分析能力實戰訓練

2021-06-29 16:39:22 字數 4597 閱讀 3170

一、掃雷(題目在**源程式裡)

1、 迴圈依次檢視每個點周圍有的八個點當中,多少個是雷。

2、 判斷點為雷,count加1

3、修改對應矩陣的值

/*

掃雷遊戲(難度係數:3)

(輸入檔案:mine.txt,輸出檔案:estdout.pc2)

玩過掃雷遊的朋友都知道,該遊戲的目標是找出乙個n*m矩陣內的所有的地雷,在本題中,你需要為每乙個單元格統計出它周圍地雷的個數,每個單元格最多有8個相鄰單元格,如下圖,4

*4 的格仔裡,用"*"表示雷,用"^" 表示沒有雷。

*^^^

^^^^

^*^^

^^^^

計算後的輸出結果為:

*100

2210

1*10

1110

輸入資料:

檔案內包含若干個矩陣,對於每乙個矩陣,第一行包含兩個數m和n,分別表示該矩陣的行數和列數(0*"表示地雷,用"^"表示空白。當n=m=0時,表示檔案結束,不用處理該行,

輸出資料:

對於每乙個矩陣,首先在單獨一行列印出矩陣序號:field #x: 其中x是矩陣的編號,從1開始編號,接下來n行中,讀入的"^"用該位置周圍的地雷數目所代替,地雷處,仍用"*"表示。輸出相鄰的兩個矩陣之間,空一行。

樣例輸入:

mine.txt:44

*^^^

^^^^

^*^^

^^^^88

*^^^*^^^

*^**

**^^

^*^^**^^

^^**^**^

^*^^**^^

*^^^*^^^

^^**^**^

^*^^**^^00

estdout.pc2:

field #1:

*100

2210

1*10

1110

field #2:

*324

*310

*4**

**20

2*56

**41

23**6**

12*34**

31*334

*531

23**5**

11*33**

31*/

#include "stdio.h"

#define max_size 100

void main()

for(i=0; ifor(int j=0; jelse}}

for(i=0; ifor(int j=0; jprintf("\n");

}}

二、二值影象求最大面積

1、遞迴實現求每個點周圍四個方向上的點是否為1,為1面積加1,當前點置0,繼續判斷下面的點。

2、遞迴退出的條件:判斷當前的值為0,則返回,否則需要繼續判斷它周圍的點;

3、初始化max值為0,以後每求得乙個面積和max的值相比較,比max的值大,則賦值給max。

/*【最大區域】

二值影象是由黑白兩種畫素組成的矩形點陣,影象識別的乙個操作是求出影象中最大黑區域的面積。請設計乙個程式完成二值影象的這個操作。黑區域由黑畫素組成,乙個黑區域中的每個畫素至少與該區域中的另乙個畫素相鄰,規定乙個畫素僅與其上、下、左、右的畫素相鄰。兩個不同的黑區域沒有相鄰的畫素。乙個黑區域的面積是其所包含的畫素的個數。

【輸入】輸入檔名"area.in"

輸入由多個測試例組成。每個測試例的第一行含兩個整數n和m, (1

<=n,m

<=100), 分別表示二值影象的行數與列數,後面緊跟著n行,每行含m個整數0或1,其中第i行表示影象的第i行的m個畫素,0表示白畫素,1表示黑畫素。同一行的相鄰兩個整數之間用乙個空格隔開,兩個測試例之間用乙個空行隔開,最後乙個測試例之後隔乙個空行,再接的一行含有兩個整數0,標誌輸入的結束。

【輸出】輸出檔名"estdout.pc2"

每個測試例對應一行輸出,含乙個整數,表示相應的影象中最大黑區域的面積。

程式執行後結果示例:

【樣例輸入】56

0110

0111

0101

0100

1000

0111

1011

1046

0110

0111

1101

0101

1000

0111

00【樣例輸出】712

*/#include

int a[100][100];

int n, m, num;

int search(int

x, int

y) return0;}

main()

for(int i=0; ifor(int j=0; j}

for(i=0; ifor(int j=0; jprintf("\n");

}for( i=0; ifor(int j=0; j

三、液晶顯示器問題

1、分析:所有的數字由七個筆畫組成,三條橫線,四條豎線,即只要能顯示數字8,其他的均可顯示。

2、為每個數字建立乙個模型。

3、顯示分三種情況,沒有筆畫的地方設定值為0,顯示為空格。顯示橫的地方設定為值1,顯示為-,顯示豎線的地方設定值為2,顯示為|。

4、將要顯示的多個數字先輸入到乙個二維陣列,最後將二維陣列顯示出來。多個數字在輸入到陣列的時候,每個數字占得寬度為:2+s,(根據寬度計算下乙個數字在二維陣列中的起始位置)長度為2s+3。最後統一輸出。

/*

四、液晶顯示屏(難度係數:4)

(輸入檔案:digit.txt,輸出檔案:estdout.pc2)

現在要求你在文字檔案中,模擬液晶顯示屏的方式顯示資料,只要求顯示0~9的資料.

輸入資料:

第一行是乙個資料的組數m,表示以下有m組資料.

每一組資料報括兩個整數s和n,其中n>0 且n<99999999,s>=1 且s<=5,n是需要顯示的資料.

輸出資料:

模擬液晶顯示器輸出指定的整數n,用s個"-"表示水平線,"|",表示堅線,每乙個阿拉伯數字點用s+2列,和2s+3行.注意那些數字中的空白之處要填上空格,並且兩個數字之間有乙個空列.每行資料之間,有乙個空行

樣例輸入:

digit.txt

22 12345

3 67890

estdout.pc2

*/#include "stdio.h"

#define row 14 //14:每個數字最多佔13行(為了確保間距,行數加1)

#define col 64 //8:每個數字最多佔7列(為了確保間距,列數加1),共顯示八位

struct digit

d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;

int a[row][col] = ;

void init_digit()

void print_digit(digit d, int s, int n)

}if(d.stroke2)

}if(d.stroke3)

}if(d.stroke4)

}if(d.stroke5)

}if(d.stroke6)

}if(d.stroke7)

}}void main()

switch(k)

case

1:

case

2:

case

3:

case

4:

case

5:

case

6:

case

7:

case

8:

case

9:

}if(n>=10000000)

n = n%10000000;

else

if(n>=1000000)

n = n%1000000;

else

if(n>=100000)

n = n%100000;

else

if(n>=10000)

n = n%10000;

else

if(n>=1000)

n = n%1000;

else

if(n>=100)

n = n%100;

else

if(n>=10)

n = n%10;

else

break;

}for(i = 0; ifor(j = 0; jif(a[i][j]==1)

printf("-");

else

if(a[i][j]==0)

printf(" ");

else

if(a[i][j]==2)

printf("|");

}printf("\n");

}}

能力訓練之應變能力訓練

應變能力分為不同方面加以訓練。一.聽知覺能力訓練。聽知覺主要是通過耳朵採集訊息。聽得懂記得住,反應快。聽知覺能力差的人聽別人說話,聽完就忘,有時還反應不過來。能聽見說啥,就是聽不懂話,或者反應好久才能反應過來。大大影響應變能力。通過幾種練習可以提公升聽知覺能力。1.聽聲音辨別方向。將手機藏起來,然後...

企業能力分析

單選 共100分 1 1 下列選項中的哪一項不屬於影響企業能力的三種因素?a.資源 b.活動 c.勝任力 d.財力 標準答案 d 本題得分 10 echo 本題易錯率 state.errorrate 2 2 下列選項中哪一項不屬於獨特資源的特點?a.是有價值的 b.是可以被完全模仿的 c.是稀有的 ...

運營能力分析

運營能力分析 一 運營能力分析內涵 運營能力是指 用過企業生產經營資金周轉速度的有關指標所反映出來的企業資金利用的效率,他反應了乙個企業經營者經營管理運用資金的能力,企業資金周轉速度越快,資金的利用效果就越好,經營能力也就越強,常用的運營能力分析指標主要有 1 應收周轉率 2 存貨周轉率 3 流動資...