问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言选择法求是否有鞍点

发布网友 发布时间:2022-04-28 12:00

我来回答

1个回答

热心网友 时间:2023-10-08 20:44

题主寻找鞍点的逻辑本身就是错的

重新给题主一份鞍点的代码吧

#include <stdio.h>
#include <conio.h>

#define LEN 50 /*数组长度*/

/*打印矩阵内容*/ 
void printMatrix (int matrix[LEN][LEN], int row, int col) {
int i,j;
for (i=0; i<row; i++) {
for (j=0; j<col; j++) {
printf ("%d\t", matrix[i][j]);
}
putchar ('\n');
}
putchar ('\n');
}

/*寻找矩阵马鞍点*/
/*马鞍点:矩阵元素在该行是最大值且在该列是最小值*/
/*当马鞍点存在时,其值赋予sp,其坐标赋予spRowIndex、spColIndex并返回1;否则返回0*/
int saddlePoint (int matrix[LEN][LEN], int row, int col, int *sp, int *spRowIndex, int *spColIndex) {
int i,j,k;
int spTemp,spRowIndexTemp,spColIndexTemp; 
    int flag; /*马鞍点是否存在的标识*/

for (i=0; i<row; i++) {
flag = 1;
/*寻找第i行的最大值*/
spTemp = matrix[i][0];
spRowIndexTemp = i;
spColIndexTemp = 0;
for (j=0; j<col; j++) {
if (matrix[i][j] > spTemp) {
spTemp = matrix[i][j];
spRowIndexTemp = i;
spColIndexTemp = j;
}
}
/*验证第i行最大值,在该列是否为最小值*/ 
for (k=0; k<row; k++) {
/*若不是最小值则跳出*/
if (matrix[k][spColIndexTemp] < spTemp) {
flag = 0;
break;
}
}
/*若是最小值则该元素为矩阵马鞍点,记录其值与坐标,并返回马鞍点存在信息*/
if (flag) {
*sp = spTemp;
*spRowIndex = spRowIndexTemp;
*spColIndex = spColIndexTemp;
return flag;
}
}
return flag;
}

int main (void) {
//int matrix[LEN][LEN];
int row, col;
int flag; /*马鞍点是否存在的标识*/
int sp, spRowIndex, spColIndex; /*马鞍点值与坐标*/

/*鞍点测试1:3,1行2列*/
row = 3; col = 3;
int matrix[LEN][LEN] = {{1,3,2},{4,7,5},{9,6,8}}; 

/*鞍点测试2:4,2行3列*/
//row = 3; col = 4;
//int matrix[LEN][LEN] = {{1,3,5,3},{2,3,4,1},{3,2,6,1}};

/*鞍点测试3:无鞍点*/
//row = 3; col = 3;
//int matrix[LEN][LEN] = {{4,3,7},{6,1,9},{9,2,5}}; 

printMatrix (matrix, row, col);

flag = saddlePoint (matrix, row, col, &sp, &spRowIndex, &spColIndex);
if (flag)
printf ("存在马鞍点[%d],位于第%d行%d列!\n", sp, spRowIndex, spColIndex);
else
printf ("矩阵无马鞍点!\n");

putchar ('\n');
getch ();
    return 0;
}

运行结果

热心网友 时间:2023-10-08 20:44

题主寻找鞍点的逻辑本身就是错的

重新给题主一份鞍点的代码吧

#include <stdio.h>
#include <conio.h>

#define LEN 50 /*数组长度*/

/*打印矩阵内容*/ 
void printMatrix (int matrix[LEN][LEN], int row, int col) {
int i,j;
for (i=0; i<row; i++) {
for (j=0; j<col; j++) {
printf ("%d\t", matrix[i][j]);
}
putchar ('\n');
}
putchar ('\n');
}

/*寻找矩阵马鞍点*/
/*马鞍点:矩阵元素在该行是最大值且在该列是最小值*/
/*当马鞍点存在时,其值赋予sp,其坐标赋予spRowIndex、spColIndex并返回1;否则返回0*/
int saddlePoint (int matrix[LEN][LEN], int row, int col, int *sp, int *spRowIndex, int *spColIndex) {
int i,j,k;
int spTemp,spRowIndexTemp,spColIndexTemp; 
    int flag; /*马鞍点是否存在的标识*/

for (i=0; i<row; i++) {
flag = 1;
/*寻找第i行的最大值*/
spTemp = matrix[i][0];
spRowIndexTemp = i;
spColIndexTemp = 0;
for (j=0; j<col; j++) {
if (matrix[i][j] > spTemp) {
spTemp = matrix[i][j];
spRowIndexTemp = i;
spColIndexTemp = j;
}
}
/*验证第i行最大值,在该列是否为最小值*/ 
for (k=0; k<row; k++) {
/*若不是最小值则跳出*/
if (matrix[k][spColIndexTemp] < spTemp) {
flag = 0;
break;
}
}
/*若是最小值则该元素为矩阵马鞍点,记录其值与坐标,并返回马鞍点存在信息*/
if (flag) {
*sp = spTemp;
*spRowIndex = spRowIndexTemp;
*spColIndex = spColIndexTemp;
return flag;
}
}
return flag;
}

int main (void) {
//int matrix[LEN][LEN];
int row, col;
int flag; /*马鞍点是否存在的标识*/
int sp, spRowIndex, spColIndex; /*马鞍点值与坐标*/

/*鞍点测试1:3,1行2列*/
row = 3; col = 3;
int matrix[LEN][LEN] = {{1,3,2},{4,7,5},{9,6,8}}; 

/*鞍点测试2:4,2行3列*/
//row = 3; col = 4;
//int matrix[LEN][LEN] = {{1,3,5,3},{2,3,4,1},{3,2,6,1}};

/*鞍点测试3:无鞍点*/
//row = 3; col = 3;
//int matrix[LEN][LEN] = {{4,3,7},{6,1,9},{9,2,5}}; 

printMatrix (matrix, row, col);

flag = saddlePoint (matrix, row, col, &sp, &spRowIndex, &spColIndex);
if (flag)
printf ("存在马鞍点[%d],位于第%d行%d列!\n", sp, spRowIndex, spColIndex);
else
printf ("矩阵无马鞍点!\n");

putchar ('\n');
getch ();
    return 0;
}

运行结果

热心网友 时间:2023-10-08 20:44

题主寻找鞍点的逻辑本身就是错的

重新给题主一份鞍点的代码吧

#include <stdio.h>
#include <conio.h>

#define LEN 50 /*数组长度*/

/*打印矩阵内容*/ 
void printMatrix (int matrix[LEN][LEN], int row, int col) {
int i,j;
for (i=0; i<row; i++) {
for (j=0; j<col; j++) {
printf ("%d\t", matrix[i][j]);
}
putchar ('\n');
}
putchar ('\n');
}

/*寻找矩阵马鞍点*/
/*马鞍点:矩阵元素在该行是最大值且在该列是最小值*/
/*当马鞍点存在时,其值赋予sp,其坐标赋予spRowIndex、spColIndex并返回1;否则返回0*/
int saddlePoint (int matrix[LEN][LEN], int row, int col, int *sp, int *spRowIndex, int *spColIndex) {
int i,j,k;
int spTemp,spRowIndexTemp,spColIndexTemp; 
    int flag; /*马鞍点是否存在的标识*/

for (i=0; i<row; i++) {
flag = 1;
/*寻找第i行的最大值*/
spTemp = matrix[i][0];
spRowIndexTemp = i;
spColIndexTemp = 0;
for (j=0; j<col; j++) {
if (matrix[i][j] > spTemp) {
spTemp = matrix[i][j];
spRowIndexTemp = i;
spColIndexTemp = j;
}
}
/*验证第i行最大值,在该列是否为最小值*/ 
for (k=0; k<row; k++) {
/*若不是最小值则跳出*/
if (matrix[k][spColIndexTemp] < spTemp) {
flag = 0;
break;
}
}
/*若是最小值则该元素为矩阵马鞍点,记录其值与坐标,并返回马鞍点存在信息*/
if (flag) {
*sp = spTemp;
*spRowIndex = spRowIndexTemp;
*spColIndex = spColIndexTemp;
return flag;
}
}
return flag;
}

int main (void) {
//int matrix[LEN][LEN];
int row, col;
int flag; /*马鞍点是否存在的标识*/
int sp, spRowIndex, spColIndex; /*马鞍点值与坐标*/

/*鞍点测试1:3,1行2列*/
row = 3; col = 3;
int matrix[LEN][LEN] = {{1,3,2},{4,7,5},{9,6,8}}; 

/*鞍点测试2:4,2行3列*/
//row = 3; col = 4;
//int matrix[LEN][LEN] = {{1,3,5,3},{2,3,4,1},{3,2,6,1}};

/*鞍点测试3:无鞍点*/
//row = 3; col = 3;
//int matrix[LEN][LEN] = {{4,3,7},{6,1,9},{9,2,5}}; 

printMatrix (matrix, row, col);

flag = saddlePoint (matrix, row, col, &sp, &spRowIndex, &spColIndex);
if (flag)
printf ("存在马鞍点[%d],位于第%d行%d列!\n", sp, spRowIndex, spColIndex);
else
printf ("矩阵无马鞍点!\n");

putchar ('\n');
getch ();
    return 0;
}

运行结果

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 医保转农保 c语言鞍点找错~~具体指出错误。谢谢大家 我是安徽人老婆生病了买了外面的进口药医农保可报销2019年5月做的手术需要进口药。 c语言编程 求鞍点 找出二维数组中的鞍点,c语言 怎么在网上交医保农保? C语言求鞍点的题目 C语言 《鞍点》 题目 具体要求在下面。谢啦!!☆⌒(*^-゜)v 医农保全国可通用吗 c语言程序设计有关鞍点的问题 哪家公司可以做医院(HIS)医保农保接口?比较好点的。推荐一下哈(针对民营医院) 用C语言编辑 鞍点计算 C语言实验题——鞍点 C语言中关于二维数组的“鞍点”问题 C语言 找鞍点 C语言鞍点问题 C语言寻找矩阵的鞍点 c语言 求二维数组的鞍点 c语言求鞍点! C语言编程题,找鞍点 怎样学习写代码?是否要先学习c语言,在学c++……,从入门到精通是什么过程? c语言问题 找矩阵中的鞍点 大家都用什么医疗软件,医疗挂号系统? c语言举一个没有鞍点的例子 特殊病种要缴农保吗 新农保大病医疗申请 农保医疗保我要交440了,年年长? 考研英语2004阅读理解TEXT1 有一句是这样的:Redmon E-mailed his resume to the employer and won a 考研英语2004年真题阅读第一篇文章 求2004年考研英语一翻译真题及解析? 2004年考研英语一真题答案解析 历年考研英语真题解析及复习思路的图书目录 2004年考研英语真题题目类型有哪些 考研英语阅读出自哪? 考研英语2003年text1 考研英语核心词汇 说文解词 下载 考研英语,2006年,text1,图里面,第四句中的viewed和suggest怎么翻译的? 考研英语,2006年,text1,第三句怎么翻译? 新编考研英语阅读理解150篇的目录 考研英语,2006年,text1,图片里第一句,most common countries of