这个作业属于哪个班级 | C语言--网络2011/2012 |
---|---|
这个作业的地址 | C博客作业03--函数 |
这个作业的目标 | 学习如何设计函数、C语言基本数据类型 |
姓名 | 吴俊豪 |
0. 展示PTA总分
1. 本章学习总结:
1.1 函数定义、调用及声明
这里直接上例子:
#include<stdio.h>
int maxnum(double total, double price);//函数声明
int main(void)//主函数
{
double t, p;
int max;
scanf("%lf %lf", &t, &p);
max = maxnum(t, p);//函数调用
printf("%d", max);
return 0;
}
int maxnum(double total, double price)//函数定义
{
int max;
max = (total) / (price)+0.000001;
return max;
}
1.2 全局变量、局部变量、静态局部变量
变量类型 | 使用范围 | 生存周期 |
---|---|---|
全局变量 | 整个程序 | 整个程序 |
局部变量 | 定义的函数内 | 函数的开始到结束 |
静态局部变量 | 定义的函数内 | 整个程序 |
1.3 C数据类型及注意点
名称 | 类型名 | 数据长度 | 取值范围 | 扩展 |
---|---|---|---|---|
有符号-整型 | int | 32位 | (-231)~[(231)-1] | 无 |
有符号-短整型 | short[int] | 16位 | (-215)~[(215)-1] | 无 |
有符号-长整型 | long[int] | 32位 | (-231)~[(231)-1] | 无 |
无符号-整型 | unsigned [int] | 32位 | 0~[(2^32)-1] | 无 |
无符号-短整型 | unsigned short [int] | 16位 | 0~[(2^16)-1] | 无 |
无符号-长整型 | unsigned long [int] | 32位 | 0~[(2^32)-1] | 无 |
字符型 | char | 8位 | 0~255 | 若在输入时误读取了前面的空格或换行符,可在%c前加 来吸收空格或换行符 |
单精度浮点型 | float | 32位 | 约±[10(-38)~(1038)] | 浮点误差:当数值在数据长度范围内却出现最后一位或两位数值不正确 |
双精度浮点型 | double | 64位 | 约±[10(-308)~(10308)] | 解决浮点误差办法:1.加上一个足够小的数; 2.控制精度范围.参考 |
1.4 C运算符
C运算符符号总结
学习体会:对于常见的运算符使用起来还是比较熟练的,但使用一些偏一点的运算符还是要提前再看看,不能死记硬背,应该多用多会.
2.大作业:小学生口算表达式自动生成系统函数好痛苦好痛苦
2.1 模块流程图
流程图仅表示思路,不代表代码最终品质.
2.2 函数功能及全局变量介绍
2.2.1 全局变量
static int total = 0;//计算题目总数
static int count = 0;//计算答对题目数
2.2.2 菜单相关函数
void OperateMenu();//游戏操作界面
void GradeOneMenu();//一年级
void GradeTwoMenu();//二年级
void GradeThreeMenu();//三年级
截图:
游戏总操作界面:
年级操作界面(以二年级为例):
思路:清屏后printf出操作界面并提示输入
2.2.3 出题相关函数(还是拿二年级为例)
搭配的函数:
2.3 运行结果截图,测试用例。
(依然拿二年级为例)
图片中依次为:计算式->用户输入答案->系统判断并给出提示->(正确答案)->准确率展示.
2.4 大作业中编程技巧总结
(1)控制两个数相加时和不超过100:
num1 = 100 - (rand() % 100);
num2 = num1 - (rand() % num1);
sum = num1 + num2;
(2)控制两个数相除结果为整数
num2 = 1+rand() % 9;
num1 = num2 * (1 + rand() % 10);
sum = num1 / num2;
(3)输出随机鼓励语句
if(yoursum == sum)
{
count++;
int j;
j = rand() % 4;
switch (j)
{
case 1:
printf("好耶!
");
break;
case 2:
printf("起飞!
");
break;
case 3:
printf("针不戳!
");
break;
}
}