首页 > 用户发贴区 > 编程问题提问区 > 初学C语言,问个问题?
2008
06-12

初学C语言,问个问题?

题目:如果矩阵A中存在这样的一个元素A (i) (j)满足下列条件:   (i)   (j)是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点.编写一个程序计算出矩阵A的所有马鞍点.以及其他置.
要求:1.写出题目的解决算法和步骤.
      2.用C程序编写,写出程序代码.
      3.写出上机操作运行代码后的结果.
 
  以上的小括号统一为[] 中括号!

请根据题目要求写出答案?有能力的解答,希望得出正确答案!


初学C语言,问个问题?》有 5 条评论

  1. aa逆天 说:

    自已写好了再发上来,相信有人会帮你纠错

  2. 星矢2008 说:

    算法:定义个结构体数组变量包含数据和其行列;
          输入数组;
          在每行中比较得个最小值并和其位置,
          在每列中比较得个最大值并和其位置,
           将其储存在结构体数组中;
          比较位置,如果位置相同输出数据和位置;

    编码:

     #include”stdio.h”
    struct num
    {number;
     indexi;
     indexj;
    }num[8];
    void main()
    {int a[3][5],i,j,min,max;
     for(i=0;i<3;i++)
     for(j=0;j<5;j++)
     scanf(“%d”,&a[i][j]);
     for(i=0;i<3;i++)
      {min=a[i][0];
       for(j=0;j<5;j++)
       if(a[i][j]<=min)
       {min=a[i][j];
       num[i].number=min,num[i].indexi=i+1,num[i].indexj=j+1;}
       }
     for(j=0;j<5;j++)
      {max=a[0][j];
       for(i=0;i<3;i++)
       if(a[i][j]>=max)
        {max=a[i][j];
       num[j+3].number=max,num[j+3].indexi=i+1,num[j+3].indexj=j+1;}
      }
      for(i=0;i<3;i++)
       {for(j=3;j<8;j++)
       if(num[i].indexi==num[j].indexi&&num[i].indexj==num[j].indexj)
          printf(“the number is %d,the indexi is %d,the indexj is %d\n”,num[i].number,num[i].indexi,num[i].indexj);
         }
    }

    输入 6 5 7 8 9

           8 4 6 7 2          运行后得出the number is 5,the indexi is 1,the indexj is 2

           9  1 5 4 3

  3. 星矢2008 说:

    自己再算算看

  4. sj2015 说:

    恩,  好的, 非常感谢!

  5. 星矢2008 说:

    不用谢,大家常来切磋切磋嘛哦!!

留下一个回复