|
Post by huangno1 on Feb 26, 2017 20:37:31 GMT -8
程式說明
大家都玩過踩地雷吧!本題要求產生一個 5X5 的踩地雷盤面,並將它列印出來。
使用者輸入 25 個整數值,代表從第一列到第五列,每一列五個位置是否有地雷。0 代表沒有地雷,-1 代表有地雷。數值間空白字元或換行字元隔開。
請為沒有地雷的格子計算其周圍八個格子裡面的地雷數。最後,請輸出此遊戲盤面。地雷請以 *表示。
提示:(1) 使用一個 7X7 的二維陣列。(2) 使用迴圈來處理鄰近的格子。
輸入範例:
0 0 0 -1 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
-1 0 0 0 0
輸出範例:
001*1
00111
00000
11000
*1000
#include <stdio.h>
int main()
{
int i , j , x , y ;
int f [ 7 ] [ 7 ] = { } ;
for ( i = 1 ; i <= 5 ; i ++ )
{
for ( j = 1 ; j <= 5 ; j ++ )
scanf ( " %d" , &f [ i ] [ j ] ) ;
}
for ( i = 1 ; i <= 5 ; i ++ )
{
for ( j = 1 ; j <= 5 ; j ++ )
{
if ( f [ i ] [ j ] != -1 )
{
for ( x = i - 1 ; x <= i + 1 ; x ++ )
for ( y = j - 1 ; y <= j + 1 ; y ++ )
if ( f [ x ] [ y ] == -1 )
f [ i ] [ j ] += 1 ;
}
}
}
for ( i = 1 ; i <= 5 ; i ++ )
{
for ( j = 1 ; j <= 5 ; j ++ )
{
if ( f [ i ] [ j ] == -1 ) printf ( "*" ) ;
else printf ( "%d" , f [ i ] [ j ] ) ;
}
printf ( "\n" ) ;
}
}
|
|