7-33 求二维数组中的最大值和最小值
分数 15
作者 顾治华
单位 武汉理工大学
编写程序,输入一个3×3的二维整数数组,输出其中最大值、最小值。
输入格式:
输入9个整型数到二维数组a[3][3],数据之间用一个空格分隔。
输出格式:
输出数组a的最大值和最小值
输入样例:
在这里给出一组输入。例如:
1 2 3 4 5 6 7 8 9
输出样例:
在这里给出相应的输出。例如:
max=9 min=1
代码长度限制
16 KB
时间限制
1000 ms
内存限制
64 MB
代码1
#include<stdio.h>
int main()
{
int a[3][3];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
int max=a[0][0];
int min=a[0][0];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(min>a[i][j])
{
min=a[i][j];
}
if(max<a[i][j])
{
max=a[i][j];
}
}
}
printf("max=%d min=%d",max,min);
return 0;
}
简化一些的代码2
#include <stdio.h>//输入输出函数
int main()
{
int a[3][3];
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
scanf("%d",&a[i][j]);
int max=a[0][0],min=a[0][0];
for(int i=0;i<3;i++)
for(int j=0;j<3;j++){
if(a[i][j]<min){
min=a[i][j];
}
if(a[i][j]>max){
max=a[i][j];
}
}
printf("max=%d min=%d",max,min);
return 0;
}
两个运行结果相同,区别仅在于定义二维数组的位置以及for循环的数学规范(是否加入大括号{})
注意事项:
1、二维数组与一维数组基本逻辑类似
2、区别在于定义时需要说明a[i][j],等于有两个变量
3、此外在循环时,需要分别对于i,j进行循环
此外均相同
加油!:-)