| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 430 人关注过本帖
标题:我得程序有错吗
只看楼主 加入收藏
shuiyouhan
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-1-12
收藏
 问题点数:0 回复次数:1 
我得程序有错吗
输入的第一行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。


输出最长区域的长度。

 1  2  3  4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9






#include<stdio.h>

main()
{
int a[100][100],b[100][100],h[100][100];
int r,c,x,y;
int step=0,go;

scanf("%d%d",&r,&c);
for(x=0;x<r;x++)
for(y=0;y<c;y++)
scanf("%d",&h[x][y]);

for(x=0;x<r;x++)
for(y=0;y<c;y++)
b[x][y]=1;

do
{
go=0;
step+=1;
for(x=0;x<r;x++)
for(y=0;y<c;y++)
{
a[x][y]=b[x][y];
b[x][y]=0;
}
for(x=0;x<r;x++)
for(y=0;y<c;y++)
if(a[x][y])
{
if(x>0 && h[x][y]>h[x-1][y])
{
b[x-1][y]=1;
go=1;
}
if(x<c-1 && h[x][y]>h[x+1][y])
{
b[x+1][y]=1;
go=1;
}
if(y>0 && h[x][y]>h[x][y-1])
{
b[x][y-1]=1;
go=1;
}
if(y<r-1 && h[x][y]>h[x][y+1])
{
b[x][y+1]=1;
go=1;
}
}
}while(go);

printf("%d\n",step);
return 0;
}
2006-01-30 19:38
fat_panda
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-4-5
收藏
得分:0 

没空看啊~ 自己用vc运行下不就知道了么!!
有错误用单目调试啊~ 提点技术问题啊~

2006-02-01 15:10
快速回复:我得程序有错吗
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029749 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved