C++ Primer: Chapter 2 Variable and Built-in Type

Code

2.6 custom data structure

In bookstore.cpp:

#include<iostream>
#include"my_sales_data.h"
#include<string>

int main()
{
	my_sales_data data1, data2;
	//read informations of data1 and data2
	double price = 0;
	std::cin >> data1.bookNo >> data1.units_sold >> price;
	data1.revenue = data1.units_sold * price;
	std::cin >> data2.bookNo >> data2.units_sold >> price;
	data2.revenue = data2.units_sold * price;

	//check the bookNo of data1 and data2. if same, write their sum
	if (data1.bookNo == data2.bookNo)
	{
		unsigned sum_sold = 0;
		double avg_price = 0.0;
		sum_sold = data1.units_sold + data2.units_sold;
		avg_price = (data1.revenue + data1.revenue) / sum_sold;

		std::cout << data1.bookNo << " " << sum_sold << " " << avg_price << std::endl;
	}
	else
	{
		std::cerr << "could't sum, besuase the bookNo not same" << std::endl;
	}

	return 0;

}

In my_sales_data.h:

#ifndef MY_SALES_DATA_H
#define MY_SALES_DATA_H

#include<string>
struct my_sales_data
{
	std::string bookNo;
	unsigned units_sold = 0;
	double revenue = 0.0;
};

#endif

Homework

Test 2.1

short, int, long, long long的区别:

short:它是一种短整数类型,通常占用2个字节(16位),范围是-32768到32767(有符号short)或0到65535(无符号short)。

int:这是默认的整数类型,通常占用4个字节(32位),范围是-2147483648到2147483647(有符号int)或0到4294967295(无符号int)。

long:这是长整数类型,通常占用4个字节(32位),其范围与int相同。在某些编译器中,long可能与int大小相同,但在其他编译器中,它可能会占用更多字节以提供更大的范围。

long long:这是cpp11新增的整数类型,通常占用8个字节(64位),范围是-9223372036854775808到9223372036854775807(有符号long long)或0到18446744073709551615(无符号long long)。

float和double的区别:

float:float类型通常占用4个字节(32位),用于表示单精度浮点数。它提供大约6-7位的有效数字,并且可以表示的范围较小。

double:double类型通常占用8个字节(64位),用于表示双精度浮点数。它提供约15-16位的有效数字,比float类型的精度更高,并且可以表示的范围更广。

Test 2.8

std::cout << "\62\115\n" ;
std::cout << "\62\t\115\n" ;

Test 2.34

#include<iostream>

int main()
{
	int i = 0, &r = i;
	// a是i的引用
	auto a = r;

	const int ci = i, & cr = ci;
	// b是int
	auto b = ci;
	// c是int
	auto c = cr;
	// d是int*
	auto d = &i;
	// e是const int *
	auto e = &ci;
	// f是const int
	const auto f = ci;
	//g是ci的引用
	auto &g = ci;

	//a = 42, b = 42, c = 42, d = 42, e = 42, g = 42
	std::cout << "a before assignment: " << a;
	a = 42;
	std::cout << " a after assignment: " << a << std::endl;

	std::cout << "b before assignment: " << b;
	b = 42;
	std::cout << " b after assignment: " << b << std::endl;

	std::cout << "c before assignment: " << c;
	c = 42;
	std::cout << " c after assignment: " << c << std::endl;
	return 0;

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值