C博客作业01--分支、顺序结构

| 这个作业属于哪个班级 | C语言网络2011,2012 |
| ---- | ---- | ---- |
| 这个作业的地址 | C博客作业01--分支、顺序结构 |
| 这个作业的目标 | 初步认识C语法,掌握数据表达、printf、scanf语法及分支结构内容 |

0.展示PTA总分(0----2)


1.本章学习总结(4分)

1.1 学习内容总结(2分)

这两周主要学习的事分支、顺序结构

分支结构

1.二分支结构和if_else语句
  • if(表达式)
    语句 1;
    else
    语句2;
  • if(表达式)
    语句 1;
2.多分支结构和else-if语句
  • if(表达式1)
    语句1;
    else if(表达式2)
    语句2;
    ...
    else if(表达式n-1)
    语句n-1;
    else
    语句n;
3.switch语句

switch(表达式)
{
case 常量表达式 1:语句段1;break;
case 常量表达式 2:语句段2;break;
...
case 常量表达式 n:语句段 n;break:
default; 语句段 n+1;break;
}

逻辑运算

  • !逻辑非
  • &&逻辑与
  • ||逻辑或

字符型变量的输入和输出

  • 变量类型char
  • 在scanf()中用%c读入
  • 输入表达式时用''

1.学习随机函数使用

srand(time(0)); //设置随机数种子
rand()%100;//产生100以内的随机数
案例:猜数游戏

1.2 编程技巧总结(1分)

一个整数是由1至多位数字组成的,如何分解出整数的各个位数上对应的数字,然后加以计算

  • 对一个整数做%10的操作,就会得到他的个位数;
  • 对一个整数做/10 的操作,就去掉了它的个位数;
  • 然后再对2的结果做%10,就得到原来的十位数了;
  • 以此类推
    案例:


交换两个数字的做法:

temp=a;
a=b;
b=temp;

案例:输入3个数,输出中间数

1.3 本章学习体会(1分)

本章主要学习了几种分支结构,在写pta的过程中,我遇到了一些问题,如switch case语句中:
1.忘记加大括号导致的错误
2.使用了两个switch case 语句,却只有一个swich

改正后如下:

计算这两周代码量

2.PTA实验作业(6分)

介绍下面3个题目的做法。

2.1 前天是哪天
2.1.1 数据处理
数据表达:
变量:输入的年份int year
输入的月份int month
输入的日int day
数据处理:
如果day大于3
{ day=day-2
输出年月日}
否则判断month
如果前一个月是小月
month=month-1;
day=30-2+day;
如果month的前一个月是大月
month=month-1;
day=31-2+day;
如果month=1
year=year-1;
month=12;
day=31-2+day;
如果month=3前一个月是2月
如果当年是闰年
month=month-1;
day=29-2+1;
否则
month=month-1;
day=28-2+1;

2.1.2 代码截图

2.1.3 PTA提交列表及说明
1.忽略了8月虽然是大月,但八月的前一个月7月仍是大月,应该将八月放到前一个月是小月的区域处理

2.判断月份中应该用if_else语句而不是并列的if语句,如果用并列的if语句,当月份为5,7,10,12时,条件符合进入第一个循环,这里以月份为5时为例

if (month == 5 ||month== 7 ||month== 10 ||month== 12)
		{
			month = month - 1;
			day = 30 - 2 + day;//跨月份到小月
		}

经过此循环月份变为4,符合第二个循环,进入第二个循环

if (month == 2 ||month== 4 ||month== 6 || month==9||month==11||month==8)
		{
			month = month - 1;
			day = 31- 2+ day;//跨月份到大月
		}

这样月份就变成了3,显然不是我们想要得到的4月,因此答案错误

正确的办法应该是使用else_if语句处理

2.2 计算油费

2.2.1 数据处理

数据处理:
常量:6.95 7.44 7.93 0.05 0.03
整型变量:加油量gas
汽油品种type
服务类型type
浮点型变量:double
字符型变量:服务类型service
数据表达:
1.输入加油量,汽油品种,服务类型
2.判断汽油品种,如果汽油品种为90,money等于6.95 * gas
否则的话如果汽油品种为93
money等于7.44乘以汽油量
否则的话如果如果汽油品种为97
money等于7.93gas
3.判断服务类型,如果服务类型m,money=money
(1-0.05)
否则的话money=money*(1-0.03)

2.2.2 代码截图



2.2.3 PTA提交列表及说明

1.输入变量的时候没有加取地址符&&导致错误

2.在else后面加了条件导致错误

2.3 出租车计费

题目:

2.3.1 单步调试截图


发现没有进入本应该进入的循环,直接跳过了,是判断条件在临界的情况出现了错误,应该改为

2.3.2 代码截图

2.3.3 PTA提交列表及说明
错误代码


通过调试改正,临界状态出错

posted @ 2020-11-08 21:24  min小王  阅读(129)  评论(0编辑  收藏  举报