| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 663 人关注过本帖
标题:这是一个神马程序,我简直要疯掉了,大家来看看
只看楼主 加入收藏
long361800
Rank: 2
等 级:论坛游民
帖 子:33
专家分:37
注 册:2010-8-23
结帖率:90%
收藏
已结贴  问题点数:2 回复次数:5 
这是一个神马程序,我简直要疯掉了,大家来看看
  假设矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是j列中值最大的元素,则称之为该矩阵的一个马鞍点。

求马鞍点代码如下::

#include <stdio.h>

#define Max   10

typedef  struct
    {
        int cols;
        int rows;
        int data;
    }B[10];

void main()
{
    int n;
    int i,j,num,t;
    int min,max;
    int A[Max][Max];
   
    printf("请输入N*N阶矩阵的维数N(<10): ");
    scanf("%d",&n);
   
    for(i=0;i<n;i++)
    {
    printf("请输入第%d行元素:",i+1);
    for(j=0;j<n;j++)
    {
    scanf("%d",&num);
    A[i][j]=num;
    }
    }

    printf("输入的矩阵为:\n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        printf("%3d",A[i][j]);
        printf("\n");
    }
    printf("\n");

  for(i=0;i<n;i++)
{
    min=A[i][0];
    B[i].data=A[i][0];
    B[i].cols=0;
    for(j=0;j<n;j++)
  {
    if(A[i][j]<min)
     {
        min=A[i][j];
        B[i].data=A[i][j];
        B[i].cols=j;
     }
    } //for
    } //for

for(j=0;i<n;i++)
{
    max=A[0][j];
    B[j].rows=0;
    for(i=0;j<n;j++)
    {
    if(A[i][j]>max)
    {
        max=A[i][j];
        //B[j].data=A[i][j];
        B[j].rows=i;
    }
    }
}

    for(i=0;i<n;i++)
    {
        t=B[i].cols;
        if(i==B[t].rows)
        printf("马鞍值为: %3d",B[i].data);
    }
    printf("\n");


    getchar();
    getchar();

}

这是一个神马程序,我简直要疯掉了,大家来看看。。。。。。。。提点建议。。。。。。。。。
搜索更多相关主题的帖子: include 元素 马鞍 最大的 
2011-08-02 19:06
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:2 
这个就是求鞍点啊
谭浩强书上有
2011-08-02 21:43
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:0 
你哪里看不懂
2011-08-02 21:44
long361800
Rank: 2
等 级:论坛游民
帖 子:33
专家分:37
注 册:2010-8-23
收藏
得分:0 
回复 3楼 世界模型
我这个程序错误太多了啊。。。。。。。我自己又换了一种方法写出来了。。。。。。但是这个程序怎么有那么多的错误????
2011-08-03 19:16
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:0 
要有耐心看,才看得清楚,
for(j=0;i<n;i++)
 {
     max=A[0][j];
     B[j].rows=0;
     for(i=0;j<n;j++)
     {
     if(A[i][j]>max)
     {
         max=A[i][j];
         //B[j].data=A[i][j];
         B[j].rows=i;
     }
     }
 }
 
    for(i=0;i<n;i++)
     {
         t=B[i].cols;
         if(i==B[t].rows)
         printf("马鞍值为: %3d",B[i].data);
     }
    printf("\n");
 
你仔细看看这段是不是有问题。
 for(i=0;i<n;i++)
     {
         t=B[i].cols;
       if(i==B[t].rows)
         printf("马鞍值为: %3d",B[i].data);
     }

前面可以加一个for语句,同样的意思,但可以看的更清楚。

算法,数据结构,windows核心编程.
2011-09-08 13:40
快速回复:这是一个神马程序,我简直要疯掉了,大家来看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017326 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved