| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:可以运行但是结果不对啊!
只看楼主 加入收藏
壮志在我胸
Rank: 3Rank: 3
来 自:邯郸
等 级:论坛游侠
威 望:1
帖 子:158
专家分:125
注 册:2009-9-7
结帖率:75%
收藏
 问题点数:0 回复次数:8 
可以运行但是结果不对啊!
#include"stdio.h"
void main()
{
   
    int i,j,k,p,min;
   
    int    a[5][5]={{3,11,1,23,45},{67,40,56,98,91},{12,23,21,12,40},{34,45,67,23,90},{23,4,3,5,67}};
    for(i=0;i<5;i++)
    {for(j=0;j<5;j++)
printf("%5d",a[i][j]);
    printf("\n");
    }
   
    for(i=0;i<5;i++)
    {    min=a[i][0];
        for(j=1;j<5;j++)
            if(a[i][j]<min)
                min=a[i][j];
            for(j=0;j<5;j++)
                if(a[i][j]=min)
                {
                    k=j;
                    p=0;
                    while(p<5&&a[p][j]<=min)
                        p++;
                    if(p>=5)
                        printf("%d是鞍点!\n",a[p][j]);
                }
                }
}     程序的目的是找到每一行的最小值,如果它又是这一列的最大值,那么他就是鞍点!
搜索更多相关主题的帖子: 运行 结果 
2009-11-11 21:19
万改称才
Rank: 3Rank: 3
来 自:温州
等 级:论坛游侠
帖 子:58
专家分:113
注 册:2009-11-10
收藏
得分:0 
这样  你有地方错了
 for(i=0;i<5;i++)
    {    min=a[i][0];
        for(j=1;j<5;j++)
又把 min 赋值回去了  下面就白比了

老师说 : 好好读书
2009-11-11 21:39
壮志在我胸
Rank: 3Rank: 3
来 自:邯郸
等 级:论坛游侠
威 望:1
帖 子:158
专家分:125
注 册:2009-9-7
收藏
得分:0 
好像不是这里的问题吧?请在仔细看看
2009-11-11 21:43
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
lz 骗人的,用了个没那什么点的数据,郁闷死了···

#include"stdio.h"
void main()
{
   
    int i,j,k,p,min;
   
//    int a[5][5]={{3,11,1,23,45},{67,40,56,98,91},{12,23,21,12,40},{34,45,67,23,90},{23,4,3,5,67}};
    int a[5][5]= {{1,2,3,4,5},{3,4,5,6,7},{1,5,7,8,9},{9,8,5,3,5},{11,12,23,43,65}};
    for(i=0;i<5;i++)
    {for(j=0;j<5;j++)
printf("%5d",a[i][j]);
    printf("\n");
    }
   
    for(i=0;i<5;i++)
    {    min=a[i][0];
        for(j=1;j<5;j++)
            if(a[i][j]<min)
                min=a[i][j];
            for(j=0;j<5;j++)
                if(a[i][j]==min)   //  最严重的失误莫过于此
                {
                    k=j;
                    p=0;
                    while(p<5&&a[p][j]<=min)
                        p++;
                    if(p>=5)
                        printf("%d是鞍点!\n",min);   // 这个才是那个什么点吧~~~~                }
                }
}  
2009-11-11 21:50
xiepanqi
Rank: 2
等 级:论坛游民
帖 子:43
专家分:55
注 册:2009-10-24
收藏
得分:0 
呵呵
原来是数据错了
我想了N久了
4楼的你倒数第3个“}”打错地方了
还有最后用a[p][j]也行吧
2009-11-11 21:56
壮志在我胸
Rank: 3Rank: 3
来 自:邯郸
等 级:论坛游侠
威 望:1
帖 子:158
专家分:125
注 册:2009-9-7
收藏
得分:0 
回复 4楼 lijm1989
谢谢你啊!问题就是你说的,我不是骗人啊,用我写的代码有运行结果的,不过就是错的。我也不知道是那里错了
2009-11-11 21:59
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
以下是引用壮志在我胸在2009-11-11 21:59:22的发言:

谢谢你啊!问题就是你说的,我不是骗人啊,用我写的代码有运行结果的,不过就是错的。我也不知道是那里错了
呵呵··我不是怪LZ,只是改了下代码后觉得应该没问题了··然后怎么都出不来结果 ··然后自己去算了下,一开始那个二维数组根本不存在鞍点···
2009-11-11 22:12
陈大师
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:231
专家分:1038
注 册:2009-11-4
收藏
得分:0 
楼上的高手有点大意 少了一个}
#include"stdio.h"
void main()
{
   
    int i,j,k,p,min;
   
//    int a[5][5]={{3,11,1,23,45},{67,40,56,98,91},{12,23,21,12,40},{34,45,67,23,90},{23,4,3,5,67}};
    int a[5][5]= {{1,2,3,4,5},{3,4,5,6,7},{1,5,7,8,9},{9,8,5,3,5},{11,12,23,43,65}};
    for(i=0;i<5;i++)
    {for(j=0;j<5;j++)
printf("%5d",a[i][j]);
    printf("\n");
    }
   
    for(i=0;i<5;i++)
    {    min=a[i][0];
        for(j=1;j<5;j++)
            if(a[i][j]<min)
                min=a[i][j];
            for(j=0;j<5;j++)
                if(a[i][j]==min)   //  最严重的失误莫过于此
                {
                    k=j;
                    p=0;
                    while(p<5&&a[p][j]<=min)
                        p++;
                    if(p>=5)
                        printf("%d是鞍点!\n",min);   // 这个才是那个什么点吧~~~~                }
                }
}
}
2009-11-11 22:19
陈大师
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:231
专家分:1038
注 册:2009-11-4
收藏
得分:0 
虽然没有分 但还是给一个比较简单的解法···
#include"stdio.h"
void main()
{
   
    int i,ii,jj,j,k,p,min;
   
//    int a[5][5]={{3,11,1,23,45},{67,40,56,98,91},{12,23,21,12,40},{34,45,67,23,90},{23,4,3,5,67}};
    int a[5][5]= {{1,2,3,4,5},{3,4,5,6,7},{1,5,7,8,9},{9,8,5,3,5},{11,12,23,43,65}};
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
    printf("%5d",a[i][j]);
    printf("\n");
    }
   
    for(i=0;i<5;i++)
    {   
        min=a[i][0];

        for(j=0;j<5;j++)

            if(a[i][j]<=min)
            {
                min=a[i][j];
                jj=j;  //标记最小值的数的位置
            }
            p=0;
            for(ii=0;ii<5;ii++)              
               if(a[ii][jj]<min)
                    p++;               
            if(p>=4)
                printf("%d是鞍点!\n",min);            
               
    }
}
2009-11-11 22:53
快速回复:可以运行但是结果不对啊!
数据加载中...
 
   



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

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