程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 面積(area),面積area

面積(area),面積area

編輯:C#入門知識

面積(area),面積area


題目描述

編程計算由"*"號圍成的下列圖形的面積。面積計算方法是統計*號所圍成的閉合曲線中點的數目。如圖所示,在10*10的二維數組中,“*”圍住了15個點,因此面積為15。

0 0 0 0 0 0 0 0 0 0

0 0 0 0 * * * 0 0 0

0 0 0 0 * 0 0 * 0 0

0 0 0 0 0 * 0 0 * 0

0 0 * 0 0 0 * 0 * 0

0 * 0 * 0 * 0 0 * 0

0 * 0 0 * * 0 * * 0

0 0 * 0 0 0 0 * 0 0

0 0 0 * * * * * 0 0

0 0 0 0 0 0 0 0 0 0

輸入輸出樣例

輸入樣例:

0 0 0 0 0 0 0 0 0 0

0 0 0 0 1 1 1 0 0 0

0 0 0 0 1 0 0 1 0 0

0 0 0 0 0 1 0 0 1 0

0 0 1 0 0 0 1 0 1 0

0 1 0 1 0 1 0 0 1 0

0 1 0 0 1 1 0 1 1 0

0 0 1 0 0 0 0 1 0 0

0 0 0 1 1 1 1 1 0 0

0 0 0 0 0 0 0 0 0 0

輸出樣例:

15

思路

把*號外的0賦值為2,再掃一遍,最後輸出0的個數即可。

代碼

 

#include<stdio.h> int a[100][100]; int main() { int i,j,k=0; for(i=1;i<=10;i++) for(j=1;j<=10;j++) scanf("%d",&a[i][j]); for(i=1;i<=10;i++) { j=1; while(a[i][j]!=1&&j<=10) { a[i][j]=2; j++; } j=10; while(a[i][j]!=1&&j>=1) { a[i][j]=2; j--; } } for(i=1;i<=10;i++) for(j=1;j<=10;j++) if(a[i][j]==0&&(a[i][j+1]==2||a[i][j-1]==2||a[i+1][j]==2||a[i-1][j]==2)) a[i][j]=2; for(i=1;i<=10;i++) for(j=1;j<=10;j++) if(a[i][j]==0) k++; printf("%d",k); return 0; } View Code

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved