华科万维C++期末练习3_4

【程序设计】
---------------------------------------------------------

题目:

有一只兔子,囤积了6种蔬菜,编号为0-5,准备过冬

  它把蔬菜的数量记录在数组t中,数组元素t[i]为编号i蔬菜的数量,数量各不相同

  为了能顺利度过冬天,兔子会检查蔬菜的囤积数量

  请编写check函数帮助兔子统计囤积数量低于平均数量的蔬菜有多少,并将这些蔬菜的编号记录在数组b中
  
  请编写函数rep告诉兔子囤积数量最少的蔬菜编号和囤积数量最多的蔬菜编号
 

兔子向农夫购买蔬菜时,看到了蔬菜的价格表数组p,数组元素p[i]为编号i蔬菜的单价,单价各不相同
  
  请编写函数sort帮助兔子和农夫按照单价从便宜到贵的顺序重新对蔬菜编号,并按照新编号整理数组p和t 

样例:

    兔子,低于平均数量的蔬菜有4种,分别是:
    0    2    4    5
兔子,最少的蔬菜是4, 数量为12
兔子,最多的蔬菜是1, 数量为180
重新编号后
       蔬菜编号       蔬菜价格       蔬菜数量
              0              3             96
              1              4             67
              2             11            180
              3             17             12
              4             23             20
              5             33             40
请按任意键继续. . .

代码如下:

#include <iostream>
#include <iomanip>
using namespace std;
int check(int t[],int s,int b[]);
void rep(int t[],int s,int &m, int &n);
void sort(int t[],int s,int p[]);

/**********Program**********/

int check(int t[],const int s,int b[])
{
	double sum=0,ave=0;
	for(int i=0;i<s;i++)
	{
		sum+=t[i];
	}
	ave=sum/s;
	int count=0;
	for(int j=0;j<s;j++)
	{
		if(t[j]<ave)
		{
			b[count]=j;
			count++;
		}
	}
	return count;
}
void rep(int t[],const int s,int &m, int &n)
{
	m=n=0;
	int max1=t[0],min1=t[0];
	for(int i=0;i<s;i++)
	{
		if(max1<t[i])
			{
				max1=t[i];
				m=i;
		}
		if(min1>t[i])
			{
				min1=t[i];
				n=i;
		}
	}
}



void sort(int t[],const int s,int p[])
{
	int t1,t2;
	for(int i=0;i<s;i++)
	{
		for(int j=0;j<s-i-1;j++)
		{
			if(p[j]>p[j+1])
			{
				t1=p[j];
				t2=t[j];
				p[j]=p[j+1];
				t[j]=t[j+1];
				p[j+1]=t1;
				t[j+1]=t2;

			}
		}
	}

}







/**********  End  **********/


  int main()
{
        int t[6]={20,180,67,96,12,40};
        int p[6]={23,11,4,3,17,33};
        int b[6]={-1,-1,-1,-1,-1,-1};

        int i;

        int w=check(t,6,b);
        cout<<"兔子,低于平均数量的蔬菜有"<<w<<"种,分别是: "<<endl;
        for (i=0;i<w;i++) cout<<setw(5)<<b[i];
        cout<<endl;

        int max,min;
        rep(t,6,max,min);
        cout<<"兔子,最少的蔬菜是"<<min<<", 数量为"<<t[min]<<endl;
        cout<<"兔子,最多的蔬菜是"<<max<<", 数量为"<<t[max]<<endl;
    
        sort(t,6,p);
        cout<<"重新编号后"<<endl;
        cout<<setw(15)<<"蔬菜编号"<<setw(15)<<"蔬菜价格"<<setw(15)<<"蔬菜数量"<<endl;
        for (i=0;i<6;i++) cout<<setw(15)<<i<<setw(15)<<p[i]<<setw(15)<<t[i]<<endl;

        return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

季风13

谢谢认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值