在数组中查找数字【数组】
时间: 1ms 内存:128M
描述:
给定整型数组B[0..m,0..n] 。已知B中数据在每一维方向上都按从小到大的次序排列,且整型变量x在B中存在。试设计一个程序段找出一对满足B[i,j]=x的(i,j)值,要求比较次数不超过m+n.
输入:
数组长,宽
数组各元素的值
变量x
输出:
输出所有的i,j对
示例输入:
5 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
1
示例输出:
1 1
提示:
参考答案(内存最优[752]):
#include<stdio.h>
int main()
{
int m,n,i,j,a[100][100],x;
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
scanf("%d",&x);
for(i=0;i<m;i++)
{
if(a[i][0]<=x)
{
for(j=0;j<n;j++)
if(a[i][j]==x)
{
printf("%d %d\n",i+1,j+1);
}
}
}
return 0;
}
参考答案(时间最优[0]):
#include<stdio.h>
int main()
{
int m,n,i,j,a[100][100],x;
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
scanf("%d",&x);
for(i=0;i<m;i++)
{
if(a[i][0]<=x)
{
for(j=0;j<n;j++)
if(a[i][j]==x)
{
printf("%d %d\n",i+1,j+1);
}
}
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。