一个求矩阵鞍点(即行上最小的数 同时是列上最大的数)的C程序
2012-10-10 22:51
253 查看
/* 求一个矩阵的鞍点,即在行上最小在列上最大的点 */ #include<stdio.h> #include<stdlib.h> #include<time.h> int readmtr(int a[][10],int n) { int i,j; printf("input n*n matric:\n"); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); //a[i][j]=rand()%10000; return 1; } void printmtr(int a[][10],int n) { int i,j; srand((int)time(0)); for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%d\t",a[i][j]); printf("\n"); } } main() { int a[10][10],n=3,i,j,k,minj,t,kz=0; readmtr(a,n); printmtr(a,n); for(i=0;i<n;i++) { t=a[i][0]; minj=0; for(j=1;j<n;j++) if(a[i][j]<t) {t=a[i][j]; minj=j;} for(k=0;k<n;k++) { if(a[k][minj]>t) /* B:列中不存在比该点大的数不满足k<n跳出for(即 k==n) */ break; /* A:如果列中存在比该点大的数执行break,跳出for,此时 k<n ; */ if(k<n-1) continue; /* 当判断到 最后一列时仍没有比该数大的 即 k==n-1 此时 if为假。跳过continue */ printf("zhe result is a[%d][%d] = %d\n",i,minj,a[i][minj]); kz=1; break; } } if(kz==0) printf("No solution\n"); }
相关文章推荐
- 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。
- 设计一个从5个整数中取最小数和最大数的程序---acm题目
- 找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没鞍点),打印出有关信息
- 编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- Java程序:求一个数组中的最大值丶最小值和平均值。
- 编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- 找出一个二维数组中的鞍点 即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。
- /*输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指某一行中的最大值也是该列中的最小值。*/
- 实验9(1)程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 找出一个二维数组中的"鞍点",即该位置上的元素在该行中最大,在该列中最小(也可能没有"鞍点"),打印有关信息.(提示:注意特殊情况:没鞍点或多个鞍点)
- 同时获得一个序列的最小和最大值的方法
- 同时寻找一个数组中的最大元素和最小元素--你会有所收获
- 找出一个二维数组的鞍点,即该位置上的元素在该行中最大,在该列中最小(也可能没鞍点),打印出有关信息。
- 一个数组中同时找到最大/最小值
- [南阳OJ-No.31]5个数求最值|设计一个从5个整数中取最小数和最大数的程序
- 一个程序搞定最小编辑距离,最大公共子串,最大连续公共子串
- 一个养狗场有4只狗,体重分别为 花花:4.5kg;白白:5.6kg;黑黑:78kg;红红:9.0kg;请编写一个程序,可以计算他们的平均体重,可以找出体重最大和体重最小的狗的名字.
- 将一个5*5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(顺序从左到右,从上到下顺序依次从小到大存放),写一个函数实现之。用main函数调用。
- 求一个上三角矩阵中每一条斜线中的最大元素(L)和最小元素(S)。
- 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(对比两个程序)