第2章练习题--4--肿瘤面积--2713

来源:互联网 发布:同义词 知 编辑:程序博客网 时间:2024/05/18 18:54

方法一:存储所有像素,数个数,笨鸟的方法

#include <stdio.h>#include <stdlib.h>int temp[1001][1001];int main(int argc, char *argv[]){  int n,x,y,beginx,beginy,endx,endy;  int i,j;    scanf("%d",&n);  for(i=0 ; i<n ; i++)  {      for(j=0;j<n;j++)      {        scanf("%d",&temp[i][j]);      }  }  for(i=0;i<n;i++)  {    for(j=0;j<n;j++)    {      if(temp[i][j]==0)      {          beginx = j;          beginy = i;          goto l;      }    }  }    l:for(i=n-1;i>=0;i--)  {    for(j=n-1;j>=0;j--)    {      if(temp[i][j]==0)      {          endx = j;          endy = i;          goto m;      }          }  }  m:x = endx-beginx+1;   y = endy-beginy+1;  printf("%d\n",x*y-(2*x+2*y-4));  system("PAUSE");  return 0;}

方法二,数每行0和255的个数,统计肿瘤边长

#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){  int n,temp,x,y,num255,num0;  int i,j;  num0 = num255 = x = y = 0;  scanf("%d",&n);  for(i=0;i<n;i++)  {      for(j=0;j<n;j++)      {        scanf("%d",&temp);        if(temp==0)num0++;        if(temp==255)num255++;      }      if(num255==n)num0=num255=0;      else      {          y++;          if(num0>x)x = num0;          num0 = num255 = 0;      }  }  printf("%d\n",x*y-(2*x+2*y-4));  system("PAUSE");  return 0;}



 

原创粉丝点击