| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 305 人关注过本帖
标题:各位大神啊,这个程序编译通过了,但是结果有问题啊
只看楼主 加入收藏
杨七郎
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-4-10
收藏
 问题点数:0 回复次数:1 
各位大神啊,这个程序编译通过了,但是结果有问题啊
题目如下

时限:1000ms 内存限制:10000K  总时限:3000ms
描述:
FJ有一大块土地,他希望在这片土地上找到一片最平坦的小块地方种植最好品种的玉米。
给定一个N*N (1<=N<=250)的矩阵,矩阵值表示土地海拔高度(0<=高度<=250,整数),给定整数B (1<=B<=N) ,K对坐标(xi,xj),
求由(xi,xj)为左上点,边长为 B的正方形的方框内,最大数和最小数之差.
(0<K<100000;另,1<=xi<=N-B,1<=yi<=N-B)
输入:
第1行:三个数字
N,B,K
第2--N+1行:
矩阵N*N
第N+1--N+K+1行:
点对xi,xj
输出:
K行输出
坐标(xi,xj)为左上点,边长为 B的正方形的方框内,最大数和最小数之差.
输入样例:
5 3 1
5 1 2 6 3
1 3 5 2 7
7 2 4 6 1
9 9 8 6 5
0 6 9 3 9
1 2
输出样例:
5




我的代码如下

#include<stdio.h>
void main()
{
    int a,b,i,j,k,N,B,K,xi[250],xj[250],s[250][250],min[250],max[250];
    printf("input N,B,K:\n");
    scanf("%d %d %d",&N,&B,&K);
    printf("input the N*N:\n");
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            scanf("%d",&s[i][j]);
    for(k=0;k<K;k++)
        scanf("%d %d",&xi[k],&xj[k]);
    for(k=0;k<K;k++)
    {
        a=xi[k];
        b=xj[k];
        min[k]=s[a][b];
        max[k]=s[a][b];
    }
    for(k=0;k<K;k++)
    {
        a=xi[k];
        b=xj[k];
        for(i=a;i<a+B;i++)
        {
            for(j=b;j<b+B;j++)
                if(s[i][j]>max[k])
                    max[k]=s[i][j];
                if(s[i][j]<min[k])
                    min[k]=s[i][j];
        }
        printf("%d\n",(max[k]-min[k]));
    }
}
搜索更多相关主题的帖子: 矩阵 250 正方形 品种 
2012-04-12 23:18
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
收藏
得分:0 
#include<stdio.h>
 void main()
 {
     int i,j,N,B,K,xi,yj,s[250][250],min,max,x,y;
     printf("input N,B,K:\n");
     scanf("%d %d %d",&N,&B,&K);
     printf("input the N*N:\n");
     for(i=0;i<N;i++)
         for(j=0;j<N;j++)
             scanf("%d",&s[i][j]);
     scanf("%d %d",&xi,&yj);
     x=--xi+B;
     if(x>N-1) x=N-1;
     y=--yj+B;
     if(y>N-1) y=N-1;
     max=min=s[xi][yj];
     for(i=xi;i<x;i++)
         for(j=yj;j<y;j++)
         {
             if (s[i][j]>max) max=s[i][j];
             if (s[i][j]<min) min=s[i][j];
         }
         printf("%d\n",(max-min));
 }
2012-04-13 00:36
快速回复:各位大神啊,这个程序编译通过了,但是结果有问题啊
数据加载中...
 
   



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

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