| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 747 人关注过本帖
标题:关于求鞍点的问题!谢谢指教!:)
收藏  订阅  推荐  打印
狂想曲
Rank: 1
等级:新手上路
帖子:4
积分:140
注册:2004-12-7
关于求鞍点的问题!谢谢指教!:)

/*找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点*/ #define m 3 #define n 3 main() { int andian(int b[m][n]); int a[m][n],i,j,x; printf("请输入一个三行三列的数组\n"); for(i=0;i<m;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); x=andian(a[m][n]); printf("%d\n",x); } int andian(int b[m][n]) { int a,h,i,j,max_line,dian=0; int c[m][n]; while(i<m) { i=0; max_line=c[i][0]; for(a=0;a<n;a++) { if(c[i][a]>max_line) { max_line=c[i][a]; for(j=0;j<m;j++) if(c[j][a]<c[i][a]) dian=c[j][a]; return(dian); } } i++; } } /*找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点*/ #define m 3 #define n 3 main() { int andian(int b[m][n]); int a[m][n],i,j,x; printf("请输入一个三行三列的数组\n"); for(i=0;i<m;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); x=andian(a[m][n]); printf("%d\n",x); } int andian(int b[m][n]) { int a,h,i,j,max_line,dian=0; int c[m][n]; while(i<m) { i=0; max_line=c[i][0]; for(a=0;a<n;a++) { if(c[i][a]>max_line) { max_line=c[i][a]; for(j=0;j<m;j++) if(c[j][a]<c[i][a]) dian=c[j][a]; return(dian); } } i++; } } 我的编译结果: fydream@linux:~/源代码/unit 7> gcc -o dreamdead 78shiyan.c 78shiyan.c: In function `main': 78shiyan.c:12: warning: passing arg 1 of `andian' makes pointer from integer without a cast fydream@linux:~/源代码/unit 7> ./dreamdead 请输入一个三行三列的数组 1 2 3 4 5 6 7 8 9 1073836960 fydream@linux:~/源代码/unit 7>
清指教!我实在是想不出怎么定义这个函数了!严重的感谢!:)
2004-12-7 11:09
狂想曲
Rank: 1
等级:新手上路
帖子:4
积分:140
注册:2004-12-7

不好意思!我两个程序重复  了!:)就看前面的那个程序就可以了!:)
2004-12-7 11:15
workhard
Rank: 2
等级:注册会员
帖子:96
积分:1060
注册:2004-11-17

#include "stdio.h" #define M 3 #define N 3

int andian(int b[M][N])

{ int i,j,m,Row,Lie,dian; for(i=0;i<M;i++)//遍历所有行 { dian=b[i][0]; Row=i; for(j=1;j<M;j++) if(b[i][j]>dian)//找到一行中的最大值 { dian=b[i][j]; Lie=j; } for(m=0;m<M;m++)//判断一行中的最大值是否是所在列的最小值; if(b[m][Lie]<dian) break; if(m==M) { printf("鞍点在第%d行,第%d列\n",Row,Lie); return dian; } } printf("没有鞍点\n"); return 0; }

void main()

{ int a[M][N],i,j,x; printf("请输入一个三行三列的数组\n"); for(i=0;i<M;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); x=andian(a); printf("%d\n",x); }

宏定义最好都大写;


2004-12-7 13:52
狂想曲
Rank: 1
等级:新手上路
帖子:4
积分:140
注册:2004-12-7

太感谢你了!:)谢谢你的帮助!:)
2004-12-7 23:10
ababy000
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2006-12-8

真的是高手谢谢
2006-12-8 15:17
共有 746 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.077304 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved