当前位置:   article > 正文

C语言-啤酒饮料问题_c语言的啤酒饮料问题。

c语言的啤酒饮料问题。

C语言的啤酒饮料问题


前言

作为一个物联在读生,C语言是我们必学的一科,今天分享的是“啤酒饮料问题”的想法与代码啊。然后有什么不对或者是可以改进的地方,欢迎提出与探讨呀。


一、题目要求

问题描述:啤酒每罐2.3元,饮料每瓶1.9元,小明买了若干饮料喝啤酒,总共花了82.3元,并且他买的啤酒的数量比饮料的少,请问他买了多少罐啤酒和多少瓶饮料。请输出所有可能的方案

二、作答步骤

1.思路

这是一个数学问题:
假设啤酒买x,饮料买y;x<y;两者所用的钱的总和为82.3元;并且已知了二者的单价。
我们可以得到一个二元一次方程:1.9y+2.3x=82.3。
输出xy的值。

我们可以看出来,只要xy中有一个值确定了,那么另一个就也可以得出来了。那么如何先确定其中的一个值就成为了现在的首要问题了。

我们可以先假定全买一种,另一种数量为0。
在这里题目要求啤酒的数量比饮料的少,那么我们可以先假定全买饮料:int l=82.3/ml; //定义全买饮料
此时购买的数量是买饮料的最大值,后面的方案的饮料的数量会比这少:for(int i=l;i>j;i--) //从全买饮料开始输出,但买的啤酒比饮料多时,退出用一个循环来依次递减饮料的数量;
确定啤酒的数量j=(82.3-ml*i)/mp;,但是因为我们确定啤酒数量的时候使用的是“商”,有可能会出现存在余数的情况,也就是说,钱没用完
计算出我们应该付的钱float k=ml*i+mp*j; //计算应花的钱
把计算得到的钱和82.3进行对比,确定求得数量是否正确,这里我们计算得出来的结果可能会和82.30有误差,例如得到82.299之类的,所以在这里用k>82.295&&k<82.305来允许误差的存在。

2.代码演示

代码如下:

#include<stdio.h>
int main()
{
	int i=0,j=0;	//定义啤酒和饮料数量;
	float mp=2.3,ml=1.9;	//定义单价
	int l=82.3/ml;		//定义全买饮料
	//printf("%d",l);
	for(int i=l;i>j;i--)		//从全买饮料开始输出,但买的啤酒比饮料多时,退出 
	{
		j=(82.3-ml*i)/mp;
		float k=ml*i+mp*j;		//计算应花的钱
		//printf("%lf\n",k);
		if(k>82.295&&k<82.305)
		{
			printf("啤酒买了%d瓶\n饮料买了%d瓶\n",j,i);
			printf("花费%.2lf元。\n\n",k);
		 } 
	 } 
	return 0; 
 } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

完结撒花
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/302676?site
推荐阅读
相关标签
  

闽ICP备14008679号