这次实例的要求是:
在n行n列的二维整数数组中,按照以下要求选出两个数。首先从每行中选出最大数,在从选出的n个最大数中选出最小数;其次,从每行选出最小数,再从选出的n个小数中选出最大数。
下面就是我的代码,在注释中可以看到我的想法:
~~~
#include <stdio.h>
/**
* 实例要求:
* 在n行n列的二维整数数组中,
* 按照以下要求选出两个数。
* 首先从每行中选出最大数,在从选出的n个最大数中选出最小数;
* 其次,从每行选出最小数,再从选出的n个小数中选出最大数。
*
*/
int main(void)
{
int order;
printf("%s\n","Please enter the order of the matrix:");
scanf("%d",&order);
printf("Please input the elements of the matrix,from a[0][0] to a[%d][%d]:\n",order-1,order-1);
int matrix[order][order];
/**
* 获取用户输入,并填充到二维数组中
*/
int colums,rows;
for(rows = 0;rows < order;rows++){
for(colums = 0; colums < order;colums++){
scanf("%d",&matrix[rows][colums]);
//这里也可以这样写
//scanf("%d",matrix[rows]+colums);
}
}
/**
* 找到最大元素的最小元素
*
*/
//用于保存最大元素中的最小元素
int minInMax = 0;
for(rows = 0;rows < order;rows++){
//用于保存行最大元素
int maxInLine = 0;
for(colums = 0;colums < order;colums++){
if(matrix[rows][colums] > maxInLine)
maxInLine = matrix[rows][colums];
}
if(rows == 0){
//当获取到第一行的最大元素时,直接赋值给最小元素
minInMax = maxInLine;
}else{
if(minInMax > maxInLine)
minInMax = maxInLine;
}
}
printf("The minimum of maximum number is %d.\n",minInMax);
/**
* 找到最小元素的最大元素
*
*/
//用于保存最小元素中的最大元素
int maxInMin = 0;
for(rows = 0;rows < order;rows++){
//用于保存行最小元素
int minInLine = matrix[rows][0];
for(colums = 0;colums < order;colums++){
if(matrix[rows][colums] < minInLine)
minInLine = matrix[rows][colums];
}
if(rows == 0){
//当获取到第一行的最小元素时,直接赋值给最大元素
maxInMin = minInLine;
}else{
if(maxInMin < minInLine)
maxInMin = minInLine;
}
}
printf("The maximum of minimum number is %d.\n",maxInMin);
return 0;
}
~~~
- 前言
- 实例一:HelloWorld
- scanf函数学习
- 实数比较
- sizeof()保留字获取类型的大小
- 自增/自减学习
- C学习if条件判断和for循环
- C实现的九九乘法表
- C实现一个比较简单的猜数游戏
- 使用C模拟ATM练习switch..case用法
- 记录一个班级的成绩练习一维数组
- C数组实现矩阵的转置
- C二维数组练习
- 利用数组求前n个质数
- C实现万年历
- C实现数组中元素的排序
- C实现任意进制数的转化
- C判断一个正整数n的d进制数是否是回文数
- C使用递归实现前N个元素的和
- 钢材切割问题
- 使用指针比较整型数据的大小
- 指向数组的指针
- 寻找指定元素
- 寻找相同元素的指针
- 整数转换成罗马数字
- 字符替换
- 从键盘读入实数
- C实现字符行排版
- C实现字符排列
- C实例--判断一个字符串是否是回文数
- 通讯录的输入输出
- 扑克牌的结构定义
- 使用“结构”统计学生成绩
- 报数游戏
- 模拟社会关系
- 统计文件中字符个数
- C实现两个文件的内容输出到同一个屏幕