【5分】P. 阵列最小元素
时间限制
1s
内存限制
128MB
题目描述
输入
测试次数t
每组测试数据为:
n、m
n行m列个数据
输出
对每组测试数据输出最小元素及其行、列位置。
例子:
输入
2
3 4
1 2 3 10
4 5 6 11
7 8 9 12
5 4
11.4 12.8 -10.5 9.87
323 12 34 54
3112 3 42 -123
31.43 653.23 12 43.43
13.4 345 432 132
输出
1 1 1
-123 3 4
C语言代码:
#include<stdio.h>
int main()
{
int t, n, m;
scanf("%d", &t); // 读入测试次数t
while(t--){
scanf("%d %d", &n, &m); // 读入n行m列
int i, j;
float a[100][100]; // 声明二维数组a
float min = 1000000; // 定义min为一个足够大的数,防止读入数据中比它小的数
int x = 0, y = 0; // 定义x、y存储最小数的行、列位置
for(i = 0; i < n; i++){
for(j = 0; j < m; j++){
scanf("%f", &a[i][j]); // 读入数据
if(a[i][j] < min){ // 如果读入的数比当前min小
min = a[i][j]; // 更新min
x = i + 1; // 更新x,注意行数从1开始算
y = j + 1; // 更新y,注意列数从1开始算
}
}
}
printf("%.0f %d %d\n", min, x, y); // 输出最小数、行位置、列位置
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int t, n, m;
double a[1005][1005];
int main()
{
cin >> t;
while (t--) {
cin >> n >> m;
double minn = 1e9;
int x, y;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
if (a[i][j] < minn) {
minn = a[i][j];
x = i;
y = j;
}
}
cout << minn << " " << x << " " << y << endl;
}
return 0;
}
#include<stdio.h>
#include<limits.h>
int main()
{
int t,n,m,i,j,min_i,min_j;
double a[100][100];
double min;
scanf("%d", &t);
while(t--){
scanf("%d%d", &n, &m);
for(i=0; i<n; i++)
for(j=0; j<m; j++)
scanf("%lf", &a[i][j]);
min = INT_MAX;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
if(a[i][j]<min){
min = a[i][j];
min_i = i;
min_j = j;
}
printf("%.lf %d %d\n",min,min_i+1,min_j+1);
}
return 0;
}