逻辑题(重点!)

/*A[n,m]是一个n行m列的矩阵;A[i][j]表示A的第i行j列的元素;定义x[i][j]为A的

第i行和第j列除了a[i,j]之外所有元素(共n+m-2个)的乘积,即x[i,j]=a[i,1]*a[i,2]*...*a[i,j-1]

..*a[i,m]*a[1,j]*a[2,j]...*a[i-1,j]*a[i+1,j]...*a[n,j]现输入非负整形的矩阵A[n,m]求MAX(x[i,j]),即所有x[i,j]中的最大值。

输入描述:第一行两个整数n和m。之后n行输入矩阵,均为非负整数

实例:

输入:3 5

5 1 8 5 2

1 3 10 3 3

7 8 5 5 16

输出:358400*/

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int n,m;//n是行数,m是列数

int count(int(*arr)[m],int n,int m,int subi,int subj)

{

int ret=1;

for(int i=0;i<n;i++)

{

if(i!=subi)

{

ret*=arr[i][subj];

}

}

for(int j=0;j<m;j++)

{

if(j!=subj)

{

ret*=arr[subi][j];

}

}

return ret;

}

int main(int argc,const char * argv[])

{

printf("请输入行数和列数\n");

scanf("%d %d",&n,&m);

int arr[n][m];

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

printf("请输入第%d行第%d个元素为:\n",i+1,j+1);

scanf("%d",&arr[i][j]);getchar();

}

}

int max=count(arr,n,n,0,0);

int temp;

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

if(0==i&&0==j)

break;

temp=count(arr,n,m,i,j);

if(temp>max)

max=temp;

}

}

printf("最大值为:%d\n",max);

return 0;

}

相关推荐
jz_ddk1 小时前
[科普] AI加速器架构全景图:从GPU到光计算的算力革命
人工智能·学习·算法·架构
曦月逸霜2 小时前
内部排序算法总结(考研向)
考研·算法·排序算法
仪器科学与传感技术博士2 小时前
Matplotlib库:Python数据可视化的基石,发现它的美
开发语言·人工智能·python·算法·信息可视化·matplotlib·图表可视化
草莓熊Lotso3 小时前
【洛谷题单】--分支结构(二)
c语言·c++·经验分享·其他·刷题
snowfoootball3 小时前
2025 蓝桥杯C/C++国B 部分题解
c语言·c++·笔记·学习·贪心算法·蓝桥杯
success3 小时前
【爆刷力扣-二叉树】层次遍历
算法
2501_924880705 小时前
手机拍照识别中模糊场景准确率↑37%:陌讯动态适配算法实战解析
人工智能·深度学习·算法·计算机视觉·智能手机·视觉检测
Hx__5 小时前
Redis中String数据结构为什么以长度44为embstr和raw实现的分界线?
数据结构·数据库·redis
lifallen6 小时前
HBase的异步WAL性能优化:RingBuffer的奥秘
大数据·数据库·分布式·算法·性能优化·apache·hbase
星期天要睡觉6 小时前
机器学习——支持向量机(SVM)实战案例
笔记·算法·支持向量机