计算出制作巧克力的块数(四舍五入) C语言

计算出制作巧克力的块数(四舍五入) C语言,第1张

//希望我的回答对你的学习有帮助

#include<stdio.h>

#define PIECE_PER_KG    110.0        //每KG可生产的巧克力块数 = 1000 * 55 / 500

#define BIGBOX            24

#define SMALLBOX        11

int main(void)

{

    int n, big_rem, small_rem, big, small, temp, rem 

    float m

    printf("please input the weight(/kg):")

    scanf("%f",&m)

    n = (int)(PIECE_PER_KG * 裂芦m) 

    rem = n 

    for ( big = 0 big * BIGBOX <= n big++ ) {

        for ( small = 0 ( small * SMALLBOX + big * BIGBOX ) <= n small++ ) {

            temp = n - small * SMALLBOX - big * BIGBOX 

  肆手带          if ( rem > temp ) {

                rem = temp 

                big_rem = big 

      薯者          small_rem = small 

            }

        }

    }

    //printf ( "巧克力共有%d块,大盒装24块,小盒装11块。\n", n ) 

    printf ( "大盒数量:%d个,小盒数量:%d个,剩余巧克力:%d块。\n", big_rem, small_rem, rem ) 

    return 0

}

按照你的意思,一次只能拿一块完整的巧克力掰开,这样的话,最少次数应该是先沿着长边掰开,如,2×8,先掰开成两个1×8,蔽滑剩下的在每个掰8-1次。所以程序可以在你的基础上修改下:

#include<stdio.h>

int main()

{

unsigned long a,b,alls

scanf("%ld%ld",&a,&b)

// 注意,a b 合法性检查,如不能为0,这里不再详细编写

alls = a >b ? b-1 + (a-1) * b : a-1 + a *(b-1)

printf("宏哪腊%ld",alls)

return 0;

}

程序只是表达思想的工具,知道如何算才是最重要的。所缓悉以,不管程序多么大,都是表达思想的,思想重于方法。

#include<iostream>

#include <cstdio>

#include <cstdlib>

#include<string> 

#include<time.h>

using namespace std

struct chocolate{

int tag

char cho

}

#define max 100

char s='p'

int t=7

chocolate p[max][max]

void coutcho(chocolate p[max][max],int m,int n)

void choosecutcho(int m,int n,int x0,int y0)

void main(){

int m,n,x0,y0,h

int z=2

cout<<"       **************************************"<<endl

cout<<"       **      欢迎来到掰巧克力的游戏      **"<<endl

cout<<"       **请输入游戏的模式(1为单人,2为双人)**"<<endl

cout<<"       **************************************"<<endl

cin>>h

if(h==1)

cout<<"你选择了单人游戏!"<<endl

else if(h==2)

cout<<"你选择了双人游戏!"<<endl

cout<<"请输入巧克力的长度和宽度:"<<endl

cin>>n>>m

srand((unsigned)time( NULL )) 

x0=rand()%m+1

y0=rand()%n+1

for(int i=0i<mi++)

for(int j=0j<nj++)

p[i][j].cho='@'

p[x0-1][y0-1].cho='*'

cout<<"巧克力初始化如下:"<<endl

coutcho(p,m,n)

while(m!=1||n!=1){

if(z%2==0&&h==1)

{

choosecutcho(m,n,x0, y0)

cout<<"电脑走步,经型高分析决定沿"<<s<<"="<<t<<"位置掰巧克力!"<<endl

cout<<"电脑走完后的巧克力形状如下:"<<endl

}

else if(z%2==0&罩贺&h==2)

{

cout<<"玩家一走走步!"<<endl

cin>>s>>t

while((s=='x'&&(t<=0||t>=n))||(s=='y'&&(t<=0||t>=m)))

{

cout<<"输入错误!请重新输入:"<<endl

cin>>s>>t

}

cout<<"玩家一掰完后的巧克力如下:"<<endl

}

else if(z%2!=0&&h==1)

{

cout<<"轮到你走步,请输入你要掰的方向(x或y)和要掰的位置: "<<endl

cin>>s>>t

while((s=='x'&&(t<=0||t>=n))||(s=='y'&&(t<=0||t>=m)))

{

cout<<"输入错误!请重新输入:"<<endl

cin>>s>>t

}

cout<<"你掰玩后的巧克力如下:"<<endl

}

else if(z%2!=0&&h==2)

{

cout<<"玩家二走走步!"<<endl

cin>>s>>t

while((s=='x'&&(t<=0||t>=n))||(s=='y'&&(t<=0||t>=m)))

{

cout<<"输入错误!请重新输入:"<<endl

cin>>s>>t

}

cout<<"物租派玩家二掰完后的巧克力如下:"<<endl

}

if(s=='x')

{

if(y0>t)

{

n=n-t

p[x0-1][y0-t-1].cho=p[x0-1][y0-1].cho

                   p[x0-1][y0-1].cho='@'

                 y0=y0-t

}

else if(y0<=t)

n=t

}

else if(s=='y')

{

if(x0>t)

{

 m=m-t

 p[x0-t-1][y0-1].cho=p[x0-1][y0-1].cho

 p[x0-1][y0-1].cho='@'

 x0=x0-t

}

else 

if(x0<=t)

m=t

}

coutcho(p,m,n)

z++

}

if(z%2!=0&&h==1)

cout<<"电脑获胜!"<<endl

else if(z%2==0&&h==1) 

cout<<"你获胜了!"<<endl

else if(z%2!=0&&h==2) 

cout<<"玩家一获胜了!"<<endl

else if(z%2==0&&h==2) 

cout<<"玩家二获胜了!"<<endl

}

void coutcho(chocolate p[max][max],int m,int n){

int i,k

cout<<" x "

for(k=1k<=nk++)

cout<<k%10<<" "

cout<<endl

cout<<"y"<<endl

for(i=0i<mi++){ 

cout<<(i+1)%10<<"  "

for(int j=0j<nj++)

cout<<p[i][j].cho<<" "

cout<<endl

}

}

void choosecutcho(int m,int n,int x0,int y0){

int p1,p2,p3,p4,i,j,k,l,p,q1

p1=y0-1

p2=x0-1    

p3=n-y0

p4=m-x0

p=p1^p2^p3^p4

if(p!=0)

{  

for(i=0i<p1i++)

{

q1=i^p2^p3^p4

if(q1==0)

{

t=p1-i

s='x'

  goto T1

}

}

   for(j=0j<p2j++)

   {

   q1=p1^j^p3^p4

   if(q1==0)

   {

   t=p2-j

   s='y'

  goto T1

   }

   }

   for(k=0k<p3k++)

   {

   q1=p1^p2^k^p4

   if(q1==0)

   {

     t=y0+k

     s='x'

goto T1

   }

   }

  for(l=0l<p4l++)

  {

  q1=p1^p2^p3^l

    if(q1==0)

  {

   t=x0+l

 s='y'

 goto T1

  }

  }

}

else

{

if(p1!=0)

{

s='x'

t=1

}

else if(p2!=0){

s='y'

t=1

}

else if(p3!=0){

s='x'

t=n-1

}

else if(p4!=0){

s='y'

t=m-1

}

  

}

T1:

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12548907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存