#include<stdio.h>
int Max_arr(int (*arr)[5],int row,int hang)
{
int max=0;//最大值
int k=1;
//循环行
for(int i=0;i<hang;i++)
{
int k=1;
//循环列
for(int j=0;j<row;j++)
{
//控制行和列
for(int m=0;m<hang;m++)
{
for(int n=0;n<row;n++)
{
//如果是第m行的其他的元素,计算乘积
if(m==i)
{
k*=arr[m][n];
}
else if(n==j)
{
k*=arr[m][n];
}
else if(m==i&&n==j)
{
continue;
}
}
}
//找出最大值
if(k>max)
{
int temp=k;
k=max;
max=temp;
}
//保证初始的最大值
else if(0==i)
{
max=k;
}
}
}
return max;
}
int main(int argc, const char *argv[])
{
int arr[3][5]={{5,1,8,5,2},
{1,3,10,3,3},
{7,8,5,5,16}};
int row=sizeof(arr)/sizeof(arr[0]);
int hang=sizeof(arr[0])/sizeof(arr[0][0]);
printf("%d\n",row);
printf("%d\n",hang);
int max=Max_arr(arr,row,hang);
printf("%d\n",max);
return 0;
}
有一个unsigned char 类型的数据data,把他的第6个bit位置为1,请写出把第6位置为0的表达式
#include<stdio.h>
int main(int argc, const char *argv[])
{
unsigned char data=0x70;
//把第6个bit位置为1
data = data|(0x1<<6);
printf("%#x\n",data);
// printf("%d\n",data);
//把第6个bit位置为0
data=data&~(0x1<<6);
printf("%#x\n",data);
// printf("%d\n",data);
return 0;
}