#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc,const char *argv[])
{
int m,n;
scanf("%d %d",&m,&n);
int A[m][n];
//给数组赋值
for(int i=0;i<m;++i)
{
for(int j=0;j<n;++j)
{
scanf("%d",&A[i][j]);
}
}
//计算所有行的乘积,保存到col数组里,一共执行两次,每次乘积一行
int col[n];
for(int i=0;i<m;i++)
{
int num=1;
for(int j=0;j<n;j++)
{
num*=A[i][j];
}
col[i]=num;
}
//计算所有列的乘积,保存到row数组里,一共执行三次,每次乘积一列
int row[m];
for(int i=0;i<n;i++)//3
{
int num=1;
for(int j=0;j<m;j++)//2
{
num*=A[i][j];
}
row[i]=num;
}
//计算A数组中每一个位置的乘积值,并在其中找到最大值
int max=-1;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
int x=1*row[i]*col[j]/A[i][j];
if(x>max)
{
max=x;
}
}
}
//输出数组
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",A[i][j]);
}
putchar(10);
}
printf("%d\n",max);
return 0;
}
- 有一个unsigned char类型的数据data,把他的第六个bit位置为1。请写出将 data第6位清0的表达式
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> #include <unistd.h> int main(int argc,const char *argv[]) { unsigned char data='a'; //字符a第六位清零前 printf("%c\n",data); //将第六位置一 data |= (1 << 5); //将第六位清零 data &= ~(1 << 5); //字符a第六位清零前 printf("%c\n",data); return 0; }
XMind