搜索
查看: 2418|回复: 6
打印 上一主题 下一主题

C语言笔记--求解二维数组的最大/最小数

[复制链接]
跳转到指定楼层
楼主
发表于 2012-8-2 23:01:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
SOS 那出错了,帮忙看看!TKS
[mw_shl_code=c,true]/*求解二维数组的最大/最小 元素*/
#include<stdio.h>
#define MAXN 20
int a[MAXN][MAXN];
int main(void)
{
    int min;    /* 存储最小值 */
    int max;    /* 存储最大值 */
    int row;    /*行*/
    int col;    /*横 */
    int n;       /*输入方阵的阶次数*/
    printf("输入方阵的阶次:\n");/* 输入方阵的阶次 */
    scanf("%d",&n);
    printf("请输入元素矩阵\n从 a[0][0] 到 a[%d][%d]\n",n-1,n-1);   /*计算机是从0开始滴*/
    for(row=0;row<n;row++)
        for(col=0;col<n;col++)
            scanf("%d",&a[row][col]);
    for(min=a[0][0],row=0;row<n;row++)
    {
        /* 从每行选出最大数 */
        for(max=a[row][0],col=1;col<n;col++)/*从row行选出最大数 */
            if(max<a[row][col])
                max=a[row][col];
        if(min>max)/* 保存至row行的最小数 */
            min=max;
    }
    printf("最小的数字是: %d\n",min);
    for(max=a[0][0],row=0;row<n;row++)
    {
        /* 每行选出最小数 */
        for(min=a[row][0],col=1;col<n;col++)/* 从row行选出最小数 */
            if(min>a[row][col])
                min=a[row][col];
        if(max<min)/*保存至row行的最大数 */
            max=min;
    }
    printf("最大的数字是 %d\n",max);
    printf("\n按任意键退出...\n");
    getch();
    return 0;
}[/mw_shl_code]
-------------------------------------------------------------------------


二维.png (3.21 KB, 下载次数: 11)

二维.png

最佳答案

查看完整内容

[mw_shl_code=c,true]/*求解二维数组的最大/最小 元素*/ #include #define MAXN 20 int a[MAXN][MAXN]; int main(void) { int min; /* 存储最小值 */ int max; /* 存储最大值 */ int row; /*行*/ int col; /*列*/ int n; /*输入方阵的阶次数*/ printf("输入方阵的阶次:\n"); /* 输入方阵的阶次 */ do { scanf("%d",&n); if (n ...
沙发
发表于 2012-8-2 23:01:22 | 只看该作者
[mw_shl_code=c,true]/*求解二维数组的最大/最小 元素*/
#include<stdio.h>
#define MAXN 20
int a[MAXN][MAXN];
int main(void)
{     
    int min;    /* 存储最小值 */   
        int max;    /* 存储最大值 */  
        int row;    /*行*/   
        int col;    /*列*/   
    int n;      /*输入方阵的阶次数*/   
    printf("输入方阵的阶次:\n");    /* 输入方阵的阶次 */
    do
    {
                scanf("%d",&n);
        if (n>20||n<0)
        printf("输入错误,请重新输入\n");  
        else
        break;
    }while (1);
    printf("请输入元素矩阵\n从 a[0][0] 到 a[%d][%d]\n",n-1,n-1);  
         /*计算机是从0开始滴*/   
     for(row=0;row<n;row++)         
     for(col=0;col<n;col++)         
     scanf("%d",&a[row][col]);   
     /*计算最大值与最小值*/
         max=min=a[0][0];/*初始化最大最小值*/
     for (row=0;row<n;row++)
     for (col=0;col<n;col++)
     {
                if (a[row][col]<min)
        min=a[row][col];
     }
     printf("最小数字是%d\n", min);/*输出最小值*/
     for (row=0;row<n;row++)
     for (col=0;col<n;col++)
     {
                if (a[row][col]>max)
        max=a[row][col];
     }
     printf("最大数字是%d\n", max);/*输出最大值*/
     printf("\n按任意键退出...\n");   
     getch();   
     return 0;
  }

[/mw_shl_code]
板凳
 楼主| 发表于 2012-8-3 01:40:03 | 只看该作者
ahac_wuleicity 发表于 2012-8-3 01:09
[mw_shl_code=c,true]/*求解二维数组的最大/最小 元素*/
#include
#define MAXN 20

帅哥!你发现那 有问题呢....
地板
发表于 2012-8-3 01:43:42 | 只看该作者
hjx1120 发表于 2012-8-3 01:40
帅哥!你发现那 有问题呢....

什么意思?
5#
 楼主| 发表于 2012-8-3 01:48:19 | 只看该作者
ahac_wuleicity 发表于 2012-8-3 01:43
什么意思?

不是a[MAXN][MAXN]  大小这而...而是我想要输出的大小
和想要输出的有点不同..那错了?
6#
发表于 2012-8-3 02:16:58 | 只看该作者
hjx1120 发表于 2012-8-3 01:48
不是a[MAXN][MAXN]  大小这而...而是我想要输出的大小
和想要输出的有点不同..那错了?

哥哥 你那个输出始终都是不对的
if(min>max)/* 保存至row行的最小数 */            min=max;
和if(max<min)/*保存至row行的最大数 */            max=min; 始终都是不满足条件的
所以你的最大最大小值都是a[0][0]
7#
发表于 2012-9-1 20:28:33 | 只看该作者
看半天,逻辑出了问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表