zoukankan      html  css  js  c++  java
  • c语言题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点

     1 //题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。
     2 //
     3 #include "stdio.h" 
     4 #include <stdlib.h>
     5 int main() 
     6 { 
     7     int i,j,k,hang=1,lie=1; 
     8     printf("输入行");
     9     scanf("%d",&hang);
    10     printf("输入列");
    11     scanf("%d",&lie);
    12     printf("请输入该矩阵的元素,行内左至右顺序输入,行间上至下顺序输入,按回车完成一个元素的输入:
    "); 
    13     int zong=hang*lie;
    14 
    15     int *a;
    16     a=(int *) malloc (zong * sizeof(int));
    17     printf("请输入 %d 个元素: ", zong);
    18     for (i = 0; i < zong; i++)
    19     scanf("%d", &a[i]); 
    20     printf(" 
    "); 
    21 
    22     int **data;
    23 
    24 
    25     data = (int **) malloc (hang * sizeof(int *));
    26     for(int j=0;j<hang;j++)
    27     {
    28         data[j] = (int *)malloc(lie*sizeof(int)); 
    29     }
    30     for (int k=0,i=0;k<hang;k++)
    31     {
    32 
    33         for (int j=0;j<lie;j++)
    34         {
    35             
    36             data[k][j]=a[i];
    37                         i++;
    38             
    39                         
    40         }
    41     }
    42     free(a);
    43         
    44     int *rmax;
    45     rmax=(int *) malloc (hang * sizeof(int));
    46     
    47     
    48     for(k=0;k<hang;k++) 
    49     {
    50         rmax[k]=0;
    51         for(j=0;j<lie;j++)
    52         { 
    53             
    54             if(data[k][j]>=rmax[k]) 
    55             {
    56                 rmax[k]=data[k][j]; 
    57                 
    58             }
    59         } 
    60         
    61     }
    62     int*cmin;
    63     cmin=(int *) malloc (lie * sizeof(int));
    64     
    65     for(j=0;j<lie;j++) 
    66     {
    67         cmin[j]=0;
    68         for(k=0;k<hang;k++) 
    69         {
    70             if(k==0)
    71                 cmin[j]=data[k][j];
    72             if(data[k][j]<=cmin[j]) 
    73             {
    74                 cmin[j]=data[k][j]; 
    75             } 
    76         }
    77             
    78     }
    79     
    80     for(j=0;j<hang;j++)
    81         for(k=0;k<lie;k++)
    82         {
    83             if(rmax[j]==cmin[k])
    84                 printf("data[%d][%d]=%d
    ",j+1,k+1,rmax[j]); 
    85         }//这里要用到循环比较,下面这样不行 
    86     
    87 //    if(rmax[k]==cmin[j])
    88 //        printf("data[%d][%d]=%d
    ",k+1,j+1,rmax[k]); 
    89 //    else 
    90 //        printf("It is not exist!
    ");
    91 
    92     for (i=0;i<hang;i++)
    93     {
    94             free(data[i]); 
    95     } 
    96     free(data);
    97     system("pause");
    98 }
  • 相关阅读:
    SQL SERVER 存储过程或触发器等优化SET NOCOUNT ON
    C#以16进制接收串口数据
    DevExpress中的RichEditControl(富文本)控件,如何把滚动条移动至最后!
    DevExpress中XtraReport的XRRichText在打印时,打印不出内容问题
    DevExpress控件GridControl如何在页脚进行汇总
    创建虚拟机SQL server
    接口,抽象类
    Linq 优化
    sql 优化
    C#:Hashtable和Dictionary
  • 原文地址:https://www.cnblogs.com/adaonling/p/3740421.html
Copyright © 2011-2022 走看看