第一题:给标识符增加数据类型
PS:
1. 姓名和学校名用字符数组表示,姓名不超过一般都不超过32个字符,这里之所有用32而不是30,主要是因为32是2的幂次,计算机处理速度会更快
2. 年龄之所有用unsigned char而不用char,考虑到可能有些人的年龄会超过127岁,但是应该没有人会超过255岁,1个字节完全足够了
3. 身高(单位:厘米),体重(单位:公斤),这里使用浮点型来表示更加合适,因为都是需要表示175.3cm,69.5kg等,就算是整形用float表示也没有问题,另外float精确到小数点后6-7位已经完全能够满足要求,不需要使用占8个字节的double了
4. 肤色用char表示,每种肤色对应一个正整数,可以支持0-127的128种肤色
5. 学号用字符数组表示,主要考虑到两种情况,1.数字比较大;2.数字可以以0开始,比如有些教学管理系统,学号:07190305,等等
6. 班级号目前看到的数字都能用整形范围内,并且没有以0开始
7. 年级用char表示足够了,肯定在127之内
8. 成绩用short表示也足够了,就是几门考试总分,也不会超过32767
第二题:定义一个表示地球总人口的数据类型
以下使用了五种类型进行定义:(如代码所示)
#include <stdio.h>
#define LLNUM 7200000000LL
#define ULLNUM 7200000000ULL
int main()
{
long long llPeopleNum = LLNUM;
unsigned long long ullPeopleNum = ULLNUM;
__int64 n64PeopleNum = LLNUM;
unsigned __int64 u64PeopleNum = ULLNUM;
double d64PeopleNum = 7200000000;
printf("llPeopleNum = %lld\n", llPeopleNum);
printf("ullPeopleNum = %llu\n", ullPeopleNum);
printf("n64PeopleNum = %I64d\n", n64PeopleNum);
printf("u64PeopleNum = %I64u\n", u64PeopleNum);
printf("d64PeopleNum = %.0lf\n", d64PeopleNum);
}
运行结果: