大疆机试程序

本文介绍了一个使用C++编写的程序,该程序能够根据输入的最大载客数及各站点乘客变化数,计算出发时车上乘客数的所有可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <vector>
#include <algorithm>

using namespace  std;


//输入站点数 n 与最大载客数 g
void input_N_G(int a[])
{
	cout << "请输入两个整数要求大于0且小于1000" << endl;
	char c;
	int i = 0;
	while ((c = getchar()) != '\n')
	{
		if (c != ' ')//把这句判断条件改动
		{
			ungetc(c, stdin);
			cin >> a[i++];
		}
	}
	//++++需要通过asscii码判断如果不是整数则.......
}

//通过已知的数据计算出发时车上人数的可能性
int possibleNums(const int n, const int g, const vector<int> d_i)
{
	int pos = 0; //可能的人数情况
	int tem_sum = 0; //前几个数的和
	vector<int> pos_num(n);
	for (size_t i = 0; i < d_i.size(); i++)
	{
		for (size_t j = 0; j <= i; j++)
		{
			tem_sum += d_i[j];
		}
		pos_num[i] = g - tem_sum;
		tem_sum = 0;
	}

	//找到其中的最小值
	vector<int>::iterator q = min_element(pos_num.begin(), pos_num.end());
	pos = (*q) + 1;
	
	return pos;
}


void main()
{
	int  n = 0;  	//站点数 n
	int g = 0;    // 最大载客数 g
	int a[2] = { 0, 0 };
	int counts = 0; //可能的人数情况

	 ///1, 输入站点数 n 与最大载客数 g
	input_N_G(a);  //++++bool来提高程序的鲁棒性
	n = a[0];
	g = a[1];

	//测试输入的两个整数正确与否?
	for (auto i : a)
	{
		cout << i << endl;
	}

	///2, 经过每站 i 后乘客数量变化 d_i
	vector<int> d_i(n);    //对应每站的乘客数量变化 d_i[n]
	cout << "请输入" << n << "个整数要求大于-1000且小于1000" << endl;
	for (size_t i = 0; i < d_i.size(); i++)
	{
		char c = ' ';
		while ((c = getchar()) != '\n')
		{
			if (c != ' ')//把这句判断条件改动
			{
				ungetc(c, stdin);
				cin >> d_i[i++];
			}
		}	
	}

	//测试输入的n个站点的人数正确与否?
	for each (auto var in d_i)
	{
		cout << var << endl;
	}

	///3, 通过以上的数据计算出发时车上人数的可能性
	counts = possibleNums( n,  g, d_i);
	cout << counts << endl;

	system("pause");
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值