5.10 C高级作业

#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;
}

  1. 有一个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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值