PTA 7-2 国际贸易统计

7-2 国际贸易统计 (40 分)

这里给出N个国家之间进行国际贸易的记录,请你统计这些国家进行国际贸易的收益。

输入格式:

输入第一行给出一个正整数N(≤104),即参与国际贸易的国家数量,则这些国家从1到N编号。随后N行,第i行给出编号为i的国家在贸易中卖出商品的记录,格式如下:kN1​P1​⋯Nk​Pk​, 其中k(0≤k≤20)是买入商品国家的个数,Ni​是买入商品国家的编号,Pi​>0是其买入商品的金额(整数表示,以万元为单位)。注意:一次贸易对于买入和卖出国家的贸易次数都会增加1次。

输出格式:

按照收入金额从高到低的递减顺序输出每个国家的编号和收入金额(整数表示,以万元为单位)。每个国家的信息占一行,两数字间有1个空格。如果收入金额有并列,则按参与国际贸易的次数递减输出;如果还有并列,则按国家编号递增输出。

输入样例:

10
3 2 22 10 58 8 125
5 1 345 3 211 5 233 7 13 8 101
1 7 8800
2 1 1000 2 1000
2 4 250 10 320
6 5 11 9 22 8 33 7 44 10 55 4 2
1 3 8800
2 1 23 2 123
1 8 250
4 2 121 4 516 7 112 9 10

结尾无空行

输出样例:

4 1232
10 326
5 326
9 218
6 167
7 -169
3 -211
2 -363
8 -363
1 -1163

结尾无空行

#include<iostream>
using namespace std;
class country
{
public://private:
	int _num;//编号
	int _count = 0;//买入国家个数
	int _sum = 0;//卖出总金额
	int _sum2 = 0;//买入金额
	int _profit = 0;//利润
public:
	country() {};
	country(country& a);
	void set(int num, int count, int sum, int sum2);
	void show();
};
country::country(country& a)
{
	_num = a._num;
	_count = a._count;
	_sum = a._sum;
	_sum2 = a._sum2;
	_profit = a._profit;
}
void country::set(int num, int count, int sum, int sum2)
{
	_num = num;
	_count = count;
	_sum = sum;
	_sum2 = sum2;
	_profit = sum - sum2;
}
void country::show()
{
	cout << this->_num << " " << this->_profit << endl;
}
int main()
{
	int n;
	cin >> n;
	country a[n];
	int k[n];//买入商品国家个数、每个国家的次数
	for (int i = 0; i < n; i++)//输入十行
	{
		int sum = 0;
		int N[n], money[n];//买入国家编号、金额
		for (int t = 0; t < n; t++)
		{
			N[t] = 0;
			money[t] = 0;
		}
		cin >> k[i];
		for (int j = 0; j < k[i]; j++)//输入每行的信息
		{
			cin >> N[j] >> money[j];
			a[N[j] - 1]._count++, a[N[j] - 1]._sum2 += money[j];
			a[i]._count++;
			a[i]._sum += money[j];
		}
	}
	for (int i = 0; i < n; i++)
	{
		a[i].set(i + 1, a[i]._count, a[i]._sum, a[i]._sum2);
	}
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = 0; j < n - i - 1; j++)
		{
			country temp = a[j + 1];
			if (a[j]._profit < a[j + 1]._profit)
			{
				a[j + 1] = a[j];
				a[j] = temp;
			}
		}
	}
	for (int i = 0; i < n - 1; i++)
	{
		if (a[i]._profit == a[i + 1]._profit)
		{
			if (a[i]._count < a[i + 1]._count)
			{
				int temp2 = a[i + 1]._num;
				a[i + 1]._num = a[i]._num;
				a[i]._num = temp2;
			}
		}
	}
	for (int i = 0; i < n; i++)
	{
		if (i != n - 1)
			a[i].show();
		else
			cout << a[i]._num << " " << a[i]._profit;
	}
}

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
到目前为止, 尽管电子商务还没有一个统一的的定义,专家们也在为它的精确定义而争论不休。但这并不妨碍我们对电子商务真正含义的理解。电 子商务在英文中有两个说法,一个是E-Business,另一个是E-Commerce。前者指广义的电子商务,后者指电子贸易,即狭义的电子商务,是前 者的一部。 E-Business不仅是电子买卖商品,而且包括服务顾客和与商业伙伴协作,从而在组织内外从事电子交易。电子商务包括一个商业组织通过计算机网络从事 的任何活动。商业组织包括任何赢利的、政府的或非赢利的实体。活动包括针对生产、顾客、内部和管理的商业过程。E-Commerce定义为运用电子媒介 (通讯)从事交换,即买卖产品和服务,这一过程需要从一个地点到另一个地点的物理或电子运输,也被称为电子贸易。电子贸易并不能充涵盖通过通讯设备发生 的许多类型的信息交换的真正本质,E-Business还包括并不直接与实际的买卖商品相关的信息交换。商务中越来越多地运用电子手段传递信息和提供顾客 服务,这些活动是商务(business)而不是贸易(commerce)。 电子商务(Electronic Commerce, EC)这个概念起源于20世纪60年代随着国际互联网的快速崛起和迅猛发展,计算机之间的互联需求越来越迫切,随着计算机网络的快速发展,人们意识的利用计算网络的先进性和即时性能更好的服务自己的工作、生活和商业活动等。 运用计算专业知识和技能进行电子商务在线商店程序设计,来体现学习的成果是一件很有意义的事。本系统是计算机科学技术在商务领域中的一个应用。它改变了传统经营方式通过internet网络向全世界的人展示商品的信息,用计算机和网络实现最低的成本完成商品的展示销售等工作,使管理更方便、快捷、规范、准确。同时将改变我们对信息的再利用析能力,使数据进行集中管理,达到资源共享,及时利用的目的。 本系统采用B/S结构,以目前在WEB开发方面最流行的三层架构体系为基础(用户层—业务层—数据层):系统运行在Windows 2000以上的操作系统上,考虑的数据库的性能和维护等方面的综合因素,决定采用微软公司的SQL 2000 Server数据库服务器软件,提供采集数据的更新、修改、和查询。 本系统开发环境构成:开发工具SQL 2000 Server,Visual Studio .NET 2003 。 本系统目前主要实现以下功能:一是进行商品的库存管理;二是对商品的进行展示;三是系统的登录安全管理;四是对商品的销售进行全自动的计算机管理;五是及时提供商品的销售情况统计信息,方便管理者析市场。 本系统的采用的是目前最流行WEB方式的应用程序,方便用户直观的了解和操作购物的流程,使消费者能轻松了解系统的使用方法,完成一个越快的在家中直接购物的过程。 接下来的各部析、描述和编写代码来实现这个系统。
好的,这里给出 PTA 7-8 成绩统计2 的题目描述和 Python 3 代码实现。 ## 题目描述 本题要求读入 N(1 <= N <= 1000)个成绩,统计其中的优秀(>=85)、良好([70, 85))、及格([60, 70))和不及格(<60)的人数,并输出统计结果。当某一类成绩的人数为0时,不输出该行。 ## 输入格式 输入的第一行为正整数 N,表示输入成绩的个数。 接下来 N 行,每行为一个整数,表示一个成绩。 ## 输出格式 统计结果,四行,每行输出一个整数,别表示优秀、良好、及格和不及格的人数。 ## 输入样例 ``` 10 60 75 90 55 70 82 100 67 74 80 ``` ## 输出样例 ``` 2 5 2 1 ``` ## 代码实现 ```python n = int(input()) # 输入成绩个数 # 初始化四个计数器,别统计优秀、良好、及格和不及格的人数 excellent = 0 good = 0 passing = 0 failing = 0 # 循环读入 n 个成绩,并统计各个类别的人数 for i in range(n): score = int(input()) # 读入一个成绩 if score >= 85: excellent += 1 elif score >= 70: good += 1 elif score >= 60: passing += 1 else: failing += 1 # 输出各个类别的人数(如果人数为 0,则不输出该行) if excellent > 0: print(excellent) else: print("N/A") if good > 0: print(good) else: print("N/A") if passing > 0: print(passing) else: print("N/A") if failing > 0: print(failing) else: print("N/A") ``` 代码说明: 1. 首先输入成绩个数 n; 2. 然后初始化四个计数器 excellent、good、passing 和 failing,别用于统计优秀、良好、及格和不及格的人数,初始值都为 0; 3. 接着使用 for 循环,循环 n 次,每次读入一个成绩 score,并使用 if 语句判断该成绩属于哪个类别,然后累加相应的计数器; 4. 循环结束后,使用 if 语句,判断各个类别的人数是否为 0,如果不为 0,则输出该类别的人数,否则输出 "N/A"。 5. 完成以上步骤,即可得到各个类别的人数统计结果。 希望能帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值