设为首页 加入收藏

TOP

C二维数组练习
2015-11-19 23:06:58 来源: 作者: 【 】 浏览:8
Tags:二维数 练习

这次实例的要求是:

* 在n行n列的二维整数数组中,*
按照以下要求选出两个数。
* 首先从每行中选出最大数,在从选出的n个最大数中选出最小数;*
* 其次,从每行选出最小数,再从选出的n个小数中选出最大数。*

下面就是我的代码,在注释中可以看到我的想法:

#include 
   
     /** * 实例要求: * 在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; } 
   
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言--动态顺序表 下一篇用C语言编程,实现调整数组,使奇..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: