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

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

0.展示PTA总分


1.本章学习总结

1.1 学习内容总结

  • 数据的输入和输出:调用scanf()函数输入数据,变量名x前面要加&,且int型数据使用%d,float型数据使用%f,double型数据使用%lf。调用printf()函数输出数据,int型数据用%d,float和double型数据都用%.xf(x为保留小数的位数)。
  • 当题目涉及数学函数时,需要调用数学函数,需包含头文件math.h,即在编译器开头输入#include<math.h>,例如调用pow函数输入 sum = money * pow(1 + rate, year)”来表达sum=money×(1+rate)year(year次方)的函数。
    案例如下:7-7 计算银行存款的本息
#include <stdio.h>
#include<math.h>
int main()
{
    int money, year;
    double rate, sum;

    scanf("%d%d%lf", &money, &year, &rate);
    sum = money * pow(1 + rate, year);
    printf("sum = %.2f", sum);
    return 0;
}
  • if-else语句的应用较为容易理解,需要注意if后面假定内容需加括号,且括号后无分号。
    案例如下:7-9 成绩转换
#include<stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	if(n>=90)
	printf("A\n");
	else if(n>=80)
	printf("B\n");
	else if(n>=70)
	printf("C\n");
	else if(n>=60)
	printf("D\n");
	else
	printf("E");
}
  • switch语句可以处理多分支选择问题,其中break语句一般分为三种情况:(1)在switch语句的每个语句段都使用break语句;(2)在switch语句中不使用break语句;(3)在switch语句的部分语句段中使用break语句。书上详细描述switch语句的应用的要点,但由于本人学习进度较慢,在PTA还尚未完成switch语句的实验,在此先记录概念要点,在后面的学习中实践巩固。

1.2 编程技巧总结

  • 取某数各个位的数:7-4 回文数
#include<stdio.h>
int main()
{
	int x, a, b, c, d, e;
	scanf("%d", &x);
	a = x / 10000;
	b = (x / 1000) % 10;
	c = (x / 100) % 10;
	d = (x / 10) % 10;
	e = x % 10;
	if (a == e && b == d)
		printf("yes");
	else
		printf("no");

	return 0;
}
  • 判断整除做法:7-2 判断偶数
#include <stdio.h>
int main()
{
	int a;
	scanf("%d",&a);
	if(a%2==1)printf("no");
	else printf("yes") ;
	return 0;
}

在上述实验我成功得到了一个五位数各个位上的数字,也通过%完成的整除的判断,其中学习到的新符号有%(求余),&&(且),=(赋值),==(等于)等。

1.3 本章学习体会

在本章的学习中,我觉得自己有点跟不上进度,对一些知识点的理解不到位,没有实际操作,不能很好地运用到代码中,比如上文提到的switch语句的运用,当然虽然暂时落后于人,但我有信心在未来的学习中迎头赶上。
我曾有段时间被庞大的作业量击垮,一时失去了学习的方向,想要从老师布置的任务做起却发现难以理解老师预习课件中的内容,对于发布的测试难以取得理想的分数,甚至到现在都疲于应付好几种教学网站,上课几乎成自学,希望老师能更明确地指出我们的学习方向,一些任务也更明确些,再给我们一些适应的时间,让我们这些基础薄弱的同学有学下去的勇气,谢谢。
这两周我的代码量很少,几乎只完成了PTA顺序和分支两个题目集,分支结构的内容还有些毫无头绪的题目,我平时写一个代码平均需要四到五十分钟左右,一些没见过的题型更是不得不借助他人的答案。希望能在未来多挤出一些时间研究代码,提高效率。

2.PTA实验作业

2.1 前天是哪天

  • 2.1.1 数据处理
    数据表达:三个整型变量,year month day
    数据处理:判断年份是否为闰年,月份是大月还是小月,考虑年月需要借位的情况

  • 2.1.2 代码截图

  • 2.1.3 PTA提交列表及说明

  • Q1:当我第一次看到这个题的时候是毫无头绪,更不用说能想到借位、闰年、大月小月的情况

  • A1:在今天智凯学长讲解了思路以后,我请教了舍友,做出了这个运用了if-else语句版的答案

  • Q2:看到了学长用before很简洁地完成了代码,还不是很理解它的用法

  • A2:由于博客就要截止了也没时间再研究,所以老师上课有机会的话能讲一下(另外希望学长下次还能讲题)

2.2 自选一题,内容要和字符型数据处理有关的题目

  • 2.2.1 数据处理
    数据表达:加油量a,汽油品种b,服务类型c,须支付金额pay。其中a、b为整型变量,c为字符型变量,pay为双精度浮点型变量。
    数据处理:根据输入的数据判断服务类型,然后用if-else语句依据不同汽油的价格进行计算,输出油费pay。

  • 2.2.2 代码截图

  • 2.2.3 PTA提交列表及说明

  • Q1:第一次提交的时间较早,对代码还比较不熟悉,if语句运用得不是很好,导致代码非常长,写到最后各种变量连自己都难以分辨,不出所料编译错误

  • A2:到了最近重做这题,说实话,在老师讲过后还是一知半解,不得不求助同学,在同学手把手的教学下才完成本题

  • Q2:分析我在本题折戟的原因

  • A2:一是在写数学题时没有现在草稿纸上理清思路就开始写代码,导致代码混乱;二是没有注意scanf时字符型变量的特殊(在看完视频后理解);三是没有很好地使用else,一排if很难看。

2.3 自选一题,介绍单步调试如何检查错误:7-7 三个数由小到大输出

  • 2.3.1 单步调试截图

  • 2.3.2 代码截图

  • 2.3.3 PTA提交列表及说明

  • Q1:一开始编写的时候想要一步到位,结果代码出现编译错误

  • A1:通过三次if语句比较完成三个数字的大小比较

  • Q2:容易出现一些不仔细的地方,可能在vs上可以运行,但到了PTA上就会有错误

  • A2:以后可能会更加熟练计算机的思维,在一些问题上更严谨

posted @ 2020-11-08 21:45  a丶落雨未  阅读(163)  评论(0编辑  收藏  举报