C语言 一根长度为133m,(c语言)一根长度为133m的材料,需要截成长度为19m和23m的短料,求两种短料各截多少段时,剩余的材料多少...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

mdqpr

2017.01.05

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:50%    等级:7

已帮助:811人

您好楼主 根据你的问题 如果我没有理解错的话 第一题问的是 求两种短料各截多少段时,剩余的材料最少?

那么代码如下:

#include

int main()

{

int a = 133;//总长度为133米

int x,y; //表示19m有x段 23米有y段

int z[100]; //用来存储每次循环的剩余长度z

z[0]=133; //初始化z数组

int i=1;

//表示当x为x_min 当y为y_min z为z_min的时候 剩余长度z最小

int x_min = 0;

int y_min = 0;

int z_min = 0;

for(x=0;x<=7;x++)

{

for(y=0;y<=5;y++)

{

z[i]=133-x*19-y*23;

if( z[i]>=0 && z[i]

{

x_min = x;

y_min = y;

z_min = z[i];

}

i=i+1;

}

}

printf("%d %d %d \n",x_min,y_min,z_min);

return 0;

}

最后结果为 x=5 y=1 z=15

也就是最少剩余15米

第二题:

第二道题解析

按位左移<

所以y<<2 先运算

3的二进制是00000011 左移2位为00001100用十进制表示为12

再运算2|12

2用8bit表示是 00000010

12用8bit表示是 00001100

按位或就是对应的每一位进行或运算 0|0=0 1|0=1 0|1=1 1|1=1

所以答案为00001110用十进制表示位14

11分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值